{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "source": [
    "import numpy as np\r\n",
    "import pandas as pd\r\n",
    "from sko.GA import GA\r\n",
    "from sko.DE import DE\r\n",
    "import matplotlib.pyplot as plt \r\n",
    "from sonar_py import sonar\r\n",
    "from sko.tools import set_run_mode\r\n",
    "fs=20e3 #采样率\r\n",
    "T=1/fs; #采样周期\r\n",
    "L=20000\r\n",
    "t=np.arange(L).reshape(1,L)/fs"
   ],
   "outputs": [],
   "metadata": {}
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "source": [
    "#线谱信号\r\n",
    "#f0=np.array([[1000],[1500]])\r\n",
    "#theta_d=np.array([[30*np.pi/180,70*np.pi/180]])\r\n",
    "\r\n",
    "\r\n",
    "f0=np.array([[1000]])\r\n",
    "theta_d=np.array([[60]])\r\n",
    "SNR=1000\r\n",
    "s=np.exp(1j*(2*np.pi*f0*t))"
   ],
   "outputs": [],
   "metadata": {}
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "source": [
    "def my_schaffer(p):\r\n",
    "    '''\r\n",
    "    矢量水听器二阶统计量适应度函数\r\n",
    "    '''\r\n",
    "    \r\n",
    "    Ii,In,theta = p\r\n",
    "    fu1=(pp-Ii-In)/pp\r\n",
    "    fu2=(xx-Ii*np.cos(theta)**2-1/3*In)/xx\r\n",
    "    fu3=(yy-Ii*np.sin(theta)**2-1/3*In)/yy\r\n",
    "    fu4=(px-Ii*np.cos(theta))/px\r\n",
    "    fu5=(py-Ii*np.sin(theta))/py\r\n",
    "    fu6=(xy-Ii*np.cos(theta)*np.sin(theta))/xy\r\n",
    "   \r\n",
    "    return fu1**2+fu2**2+fu3**2+fu4**2+fu5**2+fu6**2\r\n"
   ],
   "outputs": [],
   "metadata": {}
  },
  {
   "cell_type": "markdown",
   "source": [
    "\r\n",
    "def hi_schaffer(p):\r\n",
    "    '''\r\n",
    "    二阶矢量水听器二阶统计量适应度函数\r\n",
    "    '''\r\n",
    "    I0, I1, theta0, theta1=p\r\n",
    "    fu1=(pgxx-I0*np.cos(theta0)**2-I1*np.cos(theta1)**2)/pgxx\r\n",
    "    fu2=(pgyy-I0*np.sin(theta0)**2-I1*np.sin(theta1)**2)/pgyy\r\n",
    "    fu3=(pgxy-I0*np.cos(theta0)*np.sin(theta0))/pgxy\r\n",
    "    fu4=(vxgxx-I0*np.cos(theta0)**3-I1*np.cos(theta1)**3)/vxgxx\r\n",
    "    fu5=(vxgyy-I0*np.cos(theta0)*np.sin(theta0)**2-I1*np.cos(theta1)*np.sin(theta1)**2)/vxgyy\r\n",
    "    fu6=(vxgxy-I0*np.cos(theta0)**2*np.sin(theta0)-I1*np.cos(theta1)**2*np.sin(theta1))/vxgxy\r\n",
    "    fu7=(vygxx-I0*np.cos(theta0)**2*np.sin(theta0)-I1*np.cos(theta1)**2*np.sin(theta1))/vygxx\r\n",
    "    fu8=(vygyy-I0*np.sin(theta0)**3-I1*np.sin(theta1)**3)/vygyy\r\n",
    "    fu9=(vygxy-I0*np.cos(theta0)*np.sin(theta0)**2-I1*np.cos(theta1)*np.sin(theta1)**2)/vygxy\r\n",
    "    fu10=(gxxgyy-I0*np.cos(theta0)**2*np.sin(theta0)**2-I1*np.cos(theta1)**2*np.sin(theta1)**2)/gxxgyy\r\n",
    "    fu11=(gxxgxy-I0*np.cos(theta0)**3*np.sin(theta0)-I1*np.cos(theta1)*np.sin(theta1))/gxxgxy\r\n",
    "    fu12=(gyygxy-I0*np.cos(theta0)*np.sin(theta0)**3-I1*np.cos(theta1)*np.sin(theta1)**3)/gyygxy\r\n",
    "    \r\n",
    "    return (fu1**2+fu2**2+fu3**2+fu4**2+fu5**2+fu6**2+fu7**2+fu8**2+fu9**2+fu10**2+fu11**2+fu12**2)  \r\n"
   ],
   "metadata": {}
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "source": [
    "ti=np.arange(50)\r\n",
    "#set_run_mode(my_schaffer, 'vectorization')\r\n",
    "theta=np.zeros((3,ti.size))\r\n",
    "theta_de=np.zeros(ti.shape)\r\n"
   ],
   "outputs": [],
   "metadata": {}
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "source": [
    "y=np.zeros(ti.shape)\r\n",
    "for i in range(ti.size):\r\n",
    "    X=sonar.vec_signal(s,SNR,theta_d,3)\r\n",
    "    L=X.shape[1]\r\n",
    "    pp=np.abs(sum(np.multiply(X[0,:],X[0,:])))/L\r\n",
    "    #pgxx, pgyy, pgxy, vxgxx, vxgyy, vxgxy, vygxx, vygyy, vygxy, gxxgyy, gxxgxy, gyygxy=sonar.st2_value2(X)\r\n",
    "    pp,xx,yy,px,py,xy=sonar.st2_value(X)\r\n",
    "    ga = GA(func=my_schaffer, n_dim=3, size_pop=500, max_iter=30, lb=[0,0,0], ub=[pp,pp,np.pi], \r\n",
    "        precision=1e-7)\r\n",
    "    best_x, best_y = ga.run()\r\n",
    "    theta[0,i]=best_x[2]*180/np.pi\r\n",
    "    #theta[1,i]=best_x[3]*180/np.pi\r\n",
    "    \r\n",
    "    #y[i]=best_y\r\n"
   ],
   "outputs": [],
   "metadata": {}
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "source": [
    "\r\n",
    "plt.plot(ti,theta[0,:])\r\n",
    "plt.show()"
   ],
   "outputs": [
    {
     "output_type": "display_data",
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjUAAAGdCAYAAADqsoKGAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAAA9hAAAPYQGoP6dpAACOtElEQVR4nO29eZxU9Znv/zm191K90dAL3bSggiLYIiBLXGBiMFxDNOhEGaPMjF6u45hEmeR3Q8xiMs7gqDGOMepoMOrNjJiMa64ZFXNlcdwC0gYVAWVplm6aXqu7ums/vz+qvt9zaj+n6iy1PO/Xq19Jd1eV1UXVOc/5PJ/n8wiiKIogCIIgCIIocixmPwGCIAiCIAgtoKKGIAiCIIiSgIoagiAIgiBKAipqCIIgCIIoCaioIQiCIAiiJKCihiAIgiCIkoCKGoIgCIIgSgIqagiCIAiCKAlsZj8BI4lEIjhx4gTcbjcEQTD76RAEQRAEoQBRFDE6OorW1lZYLOn1mLIqak6cOIH29naznwZBEARBEDlw9OhRtLW1pf19WRU1brcbQPRFqampMfnZEARBEAShBI/Hg/b2dn4eT0dZFTWs5VRTU0NFDUEQBEEUGdmsI2QUJgiCIAiiJKCihiAIgiCIkoCKGoIgCIIgSgIqagiCIAiCKAmoqCEIgiAIoiSgooYgCIIgiJKAihqCIAiCIEoCKmoIgiAIgigJqKghCIIgCKIkoKKGIAiCIIiSgIoagiAIgiBKAipqCIIgCIIoCaioKVFe6jqONz45afbTIAiCIAjDUF3UbN++HatWrUJraysEQcCLL74Y9/uxsTHceuutaGtrQ0VFBc4++2w88sgjGR/z8ccfx0UXXYT6+nrU19fj0ksvxfvvvx93mzvvvBOCIMR9NTc3q336ZUH/mB+3PduFb23eDVEUzX46BEEQBGEIqosar9eLzs5OPPTQQyl/f/vtt+PVV1/Fb37zG+zduxe33347vvnNb+Kll15K+5hbt27FmjVr8Oabb+Kdd97BtGnTsGLFChw/fjzudueccw56enr41549e9Q+/bLgyMA4RBEYD4QRilBRQxAEQZQHNrV3WLlyJVauXJn29++88w7Wrl2LZcuWAQDWrVuHf/u3f8POnTtxxRVXpLzPv//7v8d9//jjj+M///M/8cc//hE33HCD9GRtNlJnFHBieIL//0AoAruVuowEQRBE6aP52e7CCy/Eyy+/jOPHj0MURbz55pvYv38/LrvsMsWPMT4+jmAwiIaGhrifHzhwAK2trZg+fTquvfZaHDx4MOPj+P1+eDyeuK9y4HhCUUMQBEEQ5YDmRc2DDz6I2bNno62tDQ6HA1/+8pfx8MMP48ILL1T8GN/73vcwdepUXHrppfxnixYtwtNPP43XXnsNjz/+OHp7e7F06VIMDAykfZyNGzeitraWf7W3t+f1txULcUpNmIoagiAIojxQ3X7KxoMPPoh3330XL7/8Mjo6OrB9+3bccsstaGlpiStS0nHPPffgmWeewdatW+FyufjP5S2vuXPnYsmSJTj99NPx1FNPYf369Skfa8OGDXG/83g8ZVHYHB8ipYYgCIIoPzQtaiYmJvD9738fL7zwAi6//HIAwLnnnouuri7cd999WYua++67D//8z/+MN954A+eee27G21ZVVWHu3Lk4cOBA2ts4nU44nU71f0iRI28/+amoIQiCIMoETdtPwWAQwWAQFkv8w1qtVkQimU+u9957L/7xH/8Rr776KhYsWJD1v+X3+7F37160tLTk9ZxLEfLUEARBFC+b3+/GprcOmf00ihLVSs3Y2Bg+++wz/v2hQ4fQ1dWFhoYGTJs2DZdccgm++93voqKiAh0dHdi2bRuefvpp3H///fw+N9xwA6ZOnYqNGzcCiLacfvjDH+I//uM/cNppp6G3txcAUF1djerqagDAd77zHaxatQrTpk1DX18f7rrrLng8HqxduzavF6DU8PiCGPWF+PfkqSGI/BBFER+f8GBmkxsOG00SEvoSDEfwgxc/Qigi4tKzp6BjUpXZT6moUP0J3blzJ+bNm4d58+YBANavX4958+bhRz/6EQBg8+bNWLhwIa677jrMnj0bd999N/7pn/4JN998M3+M7u5u9PT08O8ffvhhBAIBXH311WhpaeFf9913H7/NsWPHsGbNGsyaNQurV6+Gw+HAu+++i46Ojpz/+FJEbhIGSKkhiHz5w55efOUXb+FnW/aZ/VSIMmBoPMDzxd47NGjysyk+VCs1y5Yty5hS29zcjF//+tcZH2Pr1q1x3x8+fDjrf3fz5s1Knl7ZQ0UNQWjLvt5oFET3wLjJz4QoBwa9Af7//3RoEF9fUPrDLVpCWmqJcXzYF/d9IBw26ZkQRGnQHzvJkOmeMAJ5UbPzyJCJz6Q4oaKmxJCPcwOAP0gHYoLIh4ExPwDAF6QLBEJ/hrxB/v8P9XvRN+rLcGsiESpqSoyk9hMZhQkiLwbGSKkhjGPQ64/7fudhUmvUQEVNiXE8oaihA3FxMeoL4q0D/QjTItKCYSDWDiClhjCCQZlSAwDvk1lYFVTUlBhMqWmqiYYOklG4uLj7vz7FNza9h//6qCf7jQlD6Kf2E2EgTKnpmFQJAPjTYSpq1EBFTQkRDEdw0hPtv05vjGYbUFFTXHzSE520OUKTNgWBPxTmuU+kehJGMDgeVWouO6cZALC3x4NRXzDTXQgZVNSUEL0jPkREwGGzoLW2AgB5aooNZvT20EGsIJBPovjIdE8YAFNqzm5xo72hAhER+KB72NwnVURQUVNCMD9Na60LTnv0n5aUmuLBFwyjbzR6QPNMhLLcmjACZhIGoqoNQegN89Q0VDmx8LQGANG8GkIZVNSUEMxPM7W+Ag4rFTXFRs+INLpJSk1hwPw0AMUjEMYwFFMHGyoduCBW1LxPvhrFUFFTQrDWRWttBd9RQ+2n4uHYkOSj8UxQUVMIyJWaQDhCU2mEroiiyFueDdUOLJweLWq6jg6TUqgQKmpKiBMjMqXGRkpNsSEPTvT4qP1UCAwkZIbQ54nQE28gzC9EGyodmNFYhcZqBwKhCPYcGzH52RUHVNSUEMeYUlNXAYfVCoAmNoqJY7KiZpSUmoKgX6bUADTWTejLYOz95rJbUOGwQhAELOigFpQaqKgpIZinpq2OlJpiRB6cSJ6awkDuqQHoIoHQl8HxaFEzqcrJf7bgtHoAZBZWChU1JYIoitL0Ux15aoqReE9NCKJI/g2zGSClhjAQZhKur7Lzn10Q89XsPDKECHm6skJFTYkwNB7kORotdS6ZUkMH4WJB7qkJhCOkChQAiZ4a+jch9ISt5GiQKTWzW2pQ5bBi1BfCvpOjZj21ooGKmhKBnRAnu51w2qxw0kh3UREMR9Drid/GSxNQ5kNKDWEk0ji3pNTYrBac3xFrQZGvJitU1JQIrPU0tS6aJEztp+JCngbtdtkAkK/GbERR5EWNM/Z5oqKG0JMB3n5yxP2chfDRcsvsUFFTIqQtakipKQqOxvw0bXUVqItdpY1QqrCpjPpD/KKAfa6o/UToCVNqJqUpav50eJC8dlmgoqZEkKcJA6BE4SKDtQ+n1legxhUtakipMRem0lQ7baipiP6bkFJD6AmbfkpUas5rr4PdKuCkx4+jgxOp7krEoKKmRJDShF0AJKWGriyLA5ZR0yYvashTYyoDsXHuSdUOuOz0eSL0ZzCNUlPhsGLO1FoAlFeTDSpqSgQpTbgSAHlqig15+7CmgnlqqP1kJix4b1KVA05bNMySlBpCT/hId6Uj6XdsD9ROKmoyQkVNicCVmrp4pYbaT8UBy6hpq68kpaZAYOPck6qdXKnx0eeJ0BFmFJ5UnVzULKTlloqgoqYE8AXD/MPQVhdTashTU1Qcl3mimH+DPDXmwjw1jdWSUuMnpYbQiVA4gpHYhUwqpYYlCx885U1KuiYkqKgpAdgJscph5a0LJ7WfioZwRETPcDSjJt5TQ+0nM+GemioneWoI3RmOFTSCANSlKGrqKh2Y1eQGQC2oTFBRUwLIJ58EQQBA7adi4qTHh1BEhM0iYIrbJfPUkFJjJv2yVoDLTkoNoS/MJFxXYYfVIqS8DVNr3j80ZNjzKjaoqCkBjsu2czOoqCke5Du7rBaBPDUFgjT95JTC9+jzROjEYJrgPTlsDxQlC6eHipoS4MRwiqIm5qkJRURaglbgMJMwC3ir5Z4aaj+ZCffUVElKDU0/EXqRbpxbDjMLf3xiBGN+Oj6kgoqaEuBYQpowADhjB2GAfDWFznFZRg0AbhQeJaXGVKRJFEmp8Qfps0Tow2CGcW5Ga10FptZVICICu7upBZUKKmpKgBMpihqm1ABkbix0jg3Fp0GTp8Z8QuEIhsaTPTU+2npP6MQg39CdvqgBZC0o2gOVEipqSoDjCSsSAMBulYxm5KspbNi/X1ssOFE+/UR7XsxhaDwIUQQsQvTK2cmNwvRZIvRBaVFDeTWZoaKmyAlHRPSORMeB5Z4aQRAoVbhI4EpNXXz7KRCOwEcnUVNgwXsNVQ5YLYLMKExKDaEPTBnMXtREJ6B2dw/TBWsKqKgpck6N+hEMi7BaBDS5nXG/c1IAX8ETiYgypSZa1FQ5rGATndSCMocBviIh+pkiozChN0qVmjOmVKO+0g5/KII9x0eMeGpFBRU1RQ47ITbXuGCzxv9z0lh34dM/5kcgFIFFAJpjy0gFQZBShcksbAr9smWWgBRmSf40Qi+UjHQD0ePDgtNotDsdVNQUOalMwgwqagofNrnWUlsBu6wo5b4aUmpMgSs11YlKDX2WCH3gSk2G6ScGW25JZuFkqKgpcqTgNlfS7yRPDUnmhUqin4bBJ6BoVYIp8GWWsatmF1dq6LNEaI8oiorbTwCwMDYBtfPIEOWQJUBFTZFzIsXkE4ONdZNkXrgkZtQwSKkxF/kySwA0/UToykQwzI/TSoqac1prUGG3YmQiiAN9Y3o/vaKCipoiJ9WKBAa1nwofniacrqghT40p9MtWJADgCy3JKEzoASuinTYLKh3WLLcG7FYLZjZHl1seGfDq+tyKDdVFzfbt27Fq1Sq0trZCEAS8+OKLcb8fGxvDrbfeira2NlRUVODss8/GI488kvVxn3vuOcyePRtOpxOzZ8/GCy+8kHSbhx9+GNOnT4fL5cL8+fOxY8cOtU+/5DhOnpqiJnHyiSEF8FH7yQz6x+Ij6522mFJDnyVCB+Tj3GwpcTZqXNFjxCgdI+JQXdR4vV50dnbioYceSvn722+/Ha+++ip+85vfYO/evbj99tvxzW9+Ey+99FLax3znnXdwzTXX4Prrr8eHH36I66+/Hl//+tfx3nvv8ds8++yzuO2223DHHXdg9+7duOiii7By5Up0d3er/RNKioxFjZVyagodyVNTGfdzUmrMhXtqSKkhDGBAhZ+G4Y4VNbQDKh7VRc3KlStx1113YfXq1Sl//84772Dt2rVYtmwZTjvtNKxbtw6dnZ3YuXNn2sd84IEH8KUvfQkbNmzAWWedhQ0bNuCLX/wiHnjgAX6b+++/HzfeeCNuuukmnH322XjggQfQ3t6uSAUqVTy+IK/Sqf1UfIiimN5TU0GeGjNJ9NS4YkpNKCIiRBcJhMYM5VLUOGM74ugYEYfmnpoLL7wQL7/8Mo4fPw5RFPHmm29i//79uOyyy9Le55133sGKFSvifnbZZZfh7bffBgAEAgHs2rUr6TYrVqzgt0mF3++Hx+OJ+yolmEm4rtKOKqct6fdOKmoKmkFvABOxK/+WhOk1Ji3T9JPxjAdCGA9E/12YUuO00y41Qj+ULLNMxE3tp5RoXtQ8+OCDmD17Ntra2uBwOPDlL38ZDz/8MC688MK09+nt7UVTU1Pcz5qamtDb2wsA6O/vRzgcznibVGzcuBG1tbX8q729PY+/rPDIlFEDgNYkFDisddhU4+SeDQYpNeYhN21WxUyb8n8fakERWqNmnJvh5hOSVNTI0aWoeffdd/Hyyy9j165d+NnPfoZbbrkFb7zxRsb7JZqjRFFM+pmS28jZsGEDRkZG+NfRo0dV/jWFTabJJ0DmqaEry4Lk2FD8Iks55KkxD+ZvaKx28uOL1SLwJbGk1BBao3Tvk5xq8tSkJLlnkQcTExP4/ve/jxdeeAGXX345AODcc89FV1cX7rvvPlx66aUp79fc3JykuPT19XFlprGxEVarNeNtUuF0OuF0OtP+vtg5PhxdZJlNqaGDcGFyPE3wHiBXauiAZTQDCSsSGC6bFcFwiJQaQnOYOpiLUZg8NfFoqtQEg0EEg0FYLPEPa7VaEYmkP7EuWbIEW7ZsifvZ66+/jqVLlwIAHA4H5s+fn3SbLVu28NuUI5kmnwAyChc6LKMm0SQMyBOF6YBlNAMJ49wMHsBHnydCY3JRamikOzWqlZqxsTF89tln/PtDhw6hq6sLDQ0NmDZtGi655BJ897vfRUVFBTo6OrBt2zY8/fTTuP/++/l9brjhBkydOhUbN24EAHz729/GxRdfjH/5l3/BFVdcgZdeeglvvPEG3nrrLX6f9evX4/rrr8eCBQuwZMkSPPbYY+ju7sbNN9+cz99f1GRKEwYAhzV6ECZPTWFyPMO/nzxROFubldCW/oRxbgYz3pNSQ2hNbkZhmn5KheqiZufOnVi+fDn/fv369QCAtWvX4sknn8TmzZuxYcMGXHfddRgcHERHRwf+6Z/+Ka746O7ujlNzli5dis2bN+MHP/gBfvjDH+L000/Hs88+i0WLFvHbXHPNNRgYGMBPf/pT9PT0YM6cOfjDH/6Ajo6OnP7wUiCrp4aUmoImo6cm1n4KhkX4ghFUKEgZJbRBWmaZ0H7iWTX0eSK0hRU1ie+5TPCcGlJq4lBd1CxbtgyimH6BVnNzM379619nfIytW7cm/ezqq6/G1VdfnfF+t9xyC2655RZFz7PUCYYjODka9dSkWmYJUFFTyMgzalK1D6scVlgEICJG1RoqaoyDeWoaqxKVGtZ+IqWG0I5wRMRwrM2sRqmpdlL7KRW0+6lI6R3xQRSjhUviwZdBOTWFi2cihNHY1EIqT40gCJJZmHw1hjKQ5qqZlBpCD4bHA2A6QX2lXfH9WPtpLBCiTd0yqKgpUpgfo7XWBYsltd+C1iQULseGoybhxmoHXPbUKgxt6jYHvvcpwVPjspNSQ2gPMwnXVthhsyo/JbP2kyhGCxsiChU1RQpvXaQxCQPUfipk+M6nFH4ahjQBRQcsI+Ej3YnTTywigZQaQkNyGecGokU2u3AlX40EFTVFygmu1GQvamgEtfDgO5/SmLwBUmrMIBIRuWmzMY1S4yOlhtCQXMa5GdU01p0EFTVFSqZxYAa1nwqXY2kWWcqhVGHj8fiCCMX8CYknGVJqCD0Y9Ko3CTMogC8ZKmqKFO6pyXClL7Wf6Mqy0Dge89RkKkp5+0nHq7BBbwDDsStFQvLT1Lhs/PPD4EoN5dQQGjLoTd3uVAIttUyGipoihRU1mdoX5KkpXApBqfEFw7j8wR34yi/eQpDUPACyce7q5IlCFyUKEzrAlZpcihontagToaKmCBFFUfLUKClq6IRVcEgrLjIZhfU9YH3S40HPiA/HhiZwuN+ry3+j2Eg3zg1QojChD/koNbTUMhkqaoqQQW+AZ2W0pAneAwAnbekuSMb8IQyPRwuVjO0nl77TT3uOjfD/v+/kqC7/jWJDmnxKVmpo9xOhB4PjeSg11H5KgoqaIuREbDv3ZLeTp5ymgtpPhQmbfKqrtPNU0FTordTsOS4ranqpqAHkGTWk1BDGMORl00/Kg/cYNbT/KQkqaooQbjLN0HoCqKgpVDJt55ajt6fmIypqkhhIs8wSkI900+eJ0I5BXtSkTobPBCk1yVBRU4Qcjyk1iosa8tQUFJKfJktRw5Ua7Q9YvmAYB/rG+Pf782w/9Xl8+O3Oo0WvYrAgtMYUSg1bk+Av8r+RKCx4UZPDSDdTeil8T0L1QkvCfJSkCQNSTg15AAqLTNu55UiJwtorNZ/0eBCOiKhyWOENhHFkcBzjgRAqHbkdEu7+r0/x/O7jCEdErLlgmsbP1jj6M3lqbKTUENoyEQhjIlYkN6jY0M1wu/S78ClWSKkxCK8/hF1HhjJuOFfKCdnep0xQ+6kwybSdW448UViL940c1npaOL0BjdUOiCLwmUy5UcsH3UMAgAMnc3+MQoCUGsJIBmMZUQ6rBVWO9P7IdFD4XjJU1BjEP/7fT3DVI2/jzX19eT+WlCac+Upf3n7S+qRI5I5ST01trP0UDIv8ak4r2OTT3Km1mNnkBgB8mqOvxuML4vBA9G86GvvbihWu1KTw1JBSQ2gNMwnXV9khCKkXE2eCPDXJUFFjEOwq+MhA/gd9KaMms1LjtEYPwqIIHv1OmI+SFRcAUOmwwhrbwK71WDebfJIXNftzLGr2nvDw/89aa8VIIBThMj4pNYQRDORhEgak9hPl1EhQUWMQbGlZvoauiUCYfxDaMgS3AYiLeacWVGEwEQjzseFsnhpBEKSsGg3lZblJeG5bLc5qjhY1uWbVfCQvagbHi1YVZIZNm0XgrT85lChMaE0+49wAtZ9SQUWNQbCwtXwr6hMj0SvhKoeVG0nTQUVN4cFUGrfTxttLmeATUBqahZlJuLHageYaF2ayoiZHpeZj2Wj4qD+EkSJdwMlaTw1VDlgsya0AyqkhtCZ/pUZqPxXrxYTWUFFjAJGIKCk1+RY1svUI2XqwVovA2xe5jnUHQhHs6x2lD4xGMD9NttYTQ24W1gpmEp4ztRaCIPD2U9+on185qnq8EyNx3x8dLM4WlLQiIfUJhpQaQmu4UlOZq1ITvV8oIvKU+XKHihoDGPWFwCwt+RY17Cq4QWGktiPPVQn//Ie9uOyB7di6/1RO9yfi4YtIlRY1FdqvSpCbhIFo1gV7PmrzaiYCYe4XY9NcxWoWlpZZpv5skVJDaA2bfsplRQIQVezZte2ovzgVUq2hosYAmEoD5O+pYfdnsmM2WAsq16vLQ7FFh5/nMe5LSCjNqGHoodTskSk1jFlNuflqPu31ICJGC4H5HfUAJDWq2GDj3OkWC/JE4WCYlEtCEwazvOeyIQgCD+CjCagoVNQYQFxRk6dSw+6faWeQnHyzathVKYU7aYPSjBqG1qsS4kzC8qImR18NMwmf01qL9oaYUlOk7af+DCsSAMAVG+mO0DSh7pRL0ZivUgPI9z/RMRqgosYQtCxq2Bu3WqlSY81vVQLL5CB3vTYozahh8PaTRgesvTGT8KQqB1pk4Y2sqFHbfvqYqz41aI+pT8Xbfkq/zBIAnHbpcEktKH0QRRFP/vchdP7kdTz19mGzn47uSHufci9qaAIqHipqDGDIK73ZtFNqlBnLnHkqNSyTQ+uclHwp1is5pRk1DK2VGmYSnttWG2c0lwfwqXltmUl4Tmst2htiRc1gsRY1MU9NmkkUp2yakMzC2uMLhvEPv/sQd/7+E3h8Ifz+wxNmPyXdGdK0qCmsY7RZUFFjAHKlxptvUZOjpybXomaCt58K4ypgPBDCjU/+CRff+2beSxiNxh8K46QneuJU7Kmp0NZTIw/dk3P65GrYLAJGfSH0enyKHisQimB/b7SVNWdqLVdqjg1NFGXRKU0/pT7BCILAP0+k1GjLieEJ/OWj7+D5D47zn+07WdpTl/Kp2FyWWTJoqWU8VNQYgLyoybeaztlTE87tIMwO3oUgbU4EwvjbJ/+EP37ah6ODE/jrJ95H74iyE3Ah0BPbrl5ht6Je4Qin1tNPfz6WbBIGou+T6Y1VAJSvSzjQN4pAOIIaV3R6qqXOBYsQVTFOxVSPYkJqP6XPDHHxooaUGq149+AAVv3iLew5PoL6Sjt+/TcLVRfYxcjIRJBPxebjqXHrMExQzFBRYwBD49KbzR+K5BWEN6q2qMlzpJsdvM1uP/mCYdz09J/w7sFBVDtt6JhUiRMjPvz1r98viIJLCdLkU/aMIYaW00/pTMIMFsKndF3Cx8clk7AgCLBbLWipLU6zsCiKsg3d6U8wUlYNKTX5wvwz3/jVexjwBjC7pQYv33ohls+awgvsXAMhiwFmEna7bLBbcz8VU/spHipqDGB4PD7QLJ8W1Fjs5KbYKJznSLevANpPvmAY//PpnfjvzwZQ5bDiqb9diN/cuAiT3U582juKm3+zqygSk48PqwveA7RNFE5nEmacpXKsm/tpptbwnzEDdLGNdXsDYf4ZSdd+AiSzMCk1+eELhvGd3/0Zd/7+E4QiIr7a2Yrn/m4p92XNzNG4Xkwwk3Cu49wMN00/xUFFjQEMJqS05mMWZvd1q2w/5VLUiKLI72fWB8YfCuPm3+zCjgP9qLBb8eu/uQDzOxrQ3lCJX//1QlQ6rPjvzwbwv5/7c8H33+VKjVIkpSb/1z8xSTgRtesSPkqRd1OsZmFmEq50WFHpSP/ZYmPdpNTkzonhCXz9397Bcx8cg0UAfnD52fjXa89DhcPKb8Nzk3pLNx9r0Jv/ODcgKTVjFL4HAFB2ZiTyYng8/s2WV1GT60h3DkWNvBAa9QURiYgpd+LoRSAUwS2/+QBb952Cy27BE3+9EBdMb+C/nzO1Fg9fdz5ufGonXth9HC21Lvx/Xz7LsOenFimjRplJGJB7aoIQRVFx2yoV6UzCDHYiOdA3hnBE5Cs2UhGOiNjbEy1+zmmVFTVsrLvI2k/9Wca5GU6+qZuUGjWM+oLoOjqMD44M4+l3DmPAG0B9pR0P/dX5+MIZjUm355vjSanJCrWf4qGixgCGxrVTalR7avKYfpJPeEREwBsIcalTbwKhCP7+Pz7AHz/tg9NmwRNrF2LJ6ZOSbrds1hRsXD0X/99//hkPb/0cLXUVuH5xhyHPUS35KDWhiIiJYDijipCNPTEPTKJJmDGtoRIuuwW+YARHBryYMbk67WMd6h/DRDCMCruV+x8A8AC+Y8PFqdRMyrJYkCk1NP2UnkhExMH+MXxwZBgfdA9hd/cw9veNQi6kzm6pwb9dP58re4mw3KQDfaNZC+xihSs1eUw+AVTUJEJFjc6Ioshzauor7RgaD+Zc1IiiKE0/qR3pziF8byLhwD3qM6aoCYYj+NYzu7Hlk5Nw2Cz41doFWJriao7x9QXt6Bn24edv7MePX/oIzTUufGl2k+7PUy1sw3qrwjRhINoOsVoEhCMiPBOhnIsaXzCMA7Gr3rltqYsaiyW63PLPx0awr3c0Y1HzUaxAmt1aE3fCadNAqdlzbART6yvyyu5QCxvnTrf3iUFLLdPz35/149+2H0RX91DKdml7QwXOn1aPBac14Orz2+LaTYlMa6iE0xYtsI8OjuM0WeFcKmiRUQMAbifz1FD7CaCiRnfGA2FeULQ3VGJofCTnPAFvIMyvdtwGhO8lmiE9viBaofyEnAuhcAS3be7Cqx/3wmG14LHr5+OiMydnvd+3vngGekYmsPlPR/HNZz7Af/zPxTh/Wr2uz1UtgwpPnHIEQUCNy4ah8SA8viCaUxh8lfBp7yhCMZNwa4bHmMWKmpOjWDm3Je3tuJ+mtSbu50ypOTE8kdMV9qe9Hqx66C0sntGAzeuWqLpvPihVamipZXr+8f9+wuMAXHYLzm2rw/nT6nH+tDrMm1aPye7Mr60cq0XAmU3V+Oi4B/tOjuZc1ITCEYQiIi9GCwkt0oQBmVKTZwZaqUBFjc6w1pPDasHkWP5FrkoNK4asFgEuuzKPdz6emsQDtxFj3f/7uT14ZU8P7FYBj15/PpbNmqLofoIg4K4r5+Ckx4c3953CTU/txHN/tzSuNWImvmAY44Ho66nWGFhTEVX48pmA2nNsGEB6kzBD6boENvl0TkIrq8ntgsNqQSAcQc/IhOKQQcbOw0MAgM/6vKruly9KPTWk1KSnbzRaGD76jfn44tlT8hpTBqK+mo+Oe7C/dxSXndOs+v7hiIgv/+sOeP0hPPd3S1UppEagxd4nQFLtqf0UhYoaneGtpyo7r6hzHelm7vZqp02xYTSf9lNiUaO3vHnS48NzHxyDIACPXDcff3GWuhaSzWrBQ391Pq597F3sOT6Cb/zqPZw3rQ6BWDZQIBSBPxRVztj3FouAO1edg4tnZleD8oEVt3aroHhyjaFFVk02kzBDvi4hHaIo4mO+yDJeqbFYBEytr8Chfi+ODqovatjk1aDXb6iXQkoTJqUmF8KydNz5HfV5FzRA7pvjGZ+fGsNnsVymW//jAzz7v5Zo8ry0QiujsLTQktpPABU1usM+6PWVDlTluSKeL7NUcVLMzyic3H7Sk8P90avzaQ2VuDRHT0yV04Yn/nohVj/y3zg6OMF3LWXitzuP6l7UyE2BaieYtEgVzmYSZpwVU2oO93vhC4ZTyvZHBycw6gvBYbXgzCnupN+3saJmaBxLkGzuzsSnvdHnGRGj+U7Zigyt4Hufsk4/MaMwKTVyhsYDvDWuNC07G/lm1ezuHuL//4PuYdzz6qe44/LZmjw3LdB6pNsXjCAYjhRU4WYGVNToDCtq6irtXCbMuf3EMmoUmoQBwGHNXS73hZKNwnpyNDYd1K7y6j6RyW4nnv+7L+APe3oQEUU4bBY4bVY4bBY4rBY47RY4rRZ0HRvGPa/uU1T45AtT7HLpn+er1CgxCTMmu52oq7RjeDyIz/rGUhZBrPU0q9nNi2Y5bbIdUGoQRTFOIRrwGlnUsKvmLNNPbKSbcmriYK9ffaUdNo1OqkypOXjKi0AokvK9lomuo8MAgHPbavHnYyN4fMchLDytAStyaGXpATcK5zn9JL/IHfOF8i6Sih0qanSGZdQ0VDl42yHn9pPBSo0/yVOjr1LTHQtsSzfmqYbJbifWLj0t423cLjvuwT6eH6Mng+O5j2/mu6mbmYQbspiEgag3aWaTG+8fGsT+k6Opi5rjyUnCcvhYt8oAvhMjvrjCuX/Uz9thesNXJGRTamyk1KRiwBt9/bScWGupdcHttGHUH8Khfi/3eylld/cwAOCWZWdg5+FB/OqtQ/iH332IV5prMG1S/seYfPAFw/DGPHYNKgYHUmGzWlBht2IiGMYoFTXqE4W3b9+OVatWobW1FYIg4MUXX4z7vSAIKb/uvffetI+5bNmylPe5/PLL+W3uvPPOpN83NxdGxZ0JJjHWydtPORY1oyrHuQFtR7q1SLXNxDFe1Bhj6GPrCvpG/bp7JAbHcj/o8/ZTjq//nixJwomwFlQ6L4Pkp0mt+vAAPpWrEj7t8cR935+QxK0X4YjIi87sRmFSalKhZBmoWgRBkFKuVbagvP4Qb1vNm1aH/73yLJw/rQ6jvhBu+Y9dpnui8vHYpYKp97TUMoeixuv1orOzEw899FDK3/f09MR9PfHEExAEAVdddVXax3z++efj7vPRRx/BarXiL//yL+Nud84558Tdbs+ePWqfvuEMj0uybL4r4vNTatR/iBOvRvU2ojGlZpoGSo0S6ivtqIh5JHp03vY9OC4ZxtWSr1Lz0TFmEk6trCQyk0fUJ59IRFHkSk2iSZghrUpQp4AlmpMHDNr0LfeDZGsFkFKTmlziCpTAk4VVLrb887ERRMSo2tNU44I9NkRQX2nHR8c9+KdX9mr6PNUitevUe+xSQQF8EqpLxJUrV2LlypVpf5+onrz00ktYvnw5ZsyYkfY+DQ0Ncd9v3rwZlZWVSUWNzWYrCnVGDtvQXV/pkO3oMM5T4yyikW52ZZ+vp0YpghCd1PmsbwzHhyZ0Hf+WgrbUX8nypZY5FpXS5FOdotvPyrCt+6THjwFvAFaLgLNb0hQ1MQXs5KgP/lCYFwLZYEUNCxvsN6ioUeMHYUpNot+s3BnIQ4nMxKymaACkWqWG+WnOa6/jP2utq8DPrzkPf/3rP+H/vHsEC6c34KudrVo9VVUwpUar18tNE1AcXW3SJ0+exCuvvIIbb7xR1f02bdqEa6+9FlVV8SeZAwcOoLW1FdOnT8e1116LgwcPZnwcv98Pj8cT92U08umn6lhgXu4j3XkoNTmNdEfvY4uN1eopbfqCYZz0RA+MRik1ADA1ll1xXOdYf9beaMhhMiSf6SdfMMxl+GwmYQa7Oj4x4kv6N2cqzRmTq9MGmjVUOVBht0IUgRPDyhUw1n7qjD1PVmzoDQ/eU9A64Tk1pNTEwUficyjaM5HrBFTX0ejk07xpdXE/XzZrCm5dfgYAYMNzf8bnp8xZmKnVigRGvhfMWvHY9s+x+f1ujOjsv8yErkXNU089BbfbjdWrVyu+z/vvv4+PPvoIN910U9zPFy1ahKeffhqvvfYaHn/8cfT29mLp0qUYGBhI+1gbN25EbW0t/2pvb8/5b8kVXtRU2VHljB4Q8x/pVn5i1GL3E0sC1dNTwyZlqp021Gk0EqoE5qvR2yw8lMf4Zj7TT2pMwozaCjtaYrdNVGuk0L30rSxBELgvSum2bn8ojIOxkf4LYysx+g0qavpV5IU4beSpScWAwvBCtbAJqO7BcYwHlB1/RFHkJuHz2pNTxW+79EwsntEAbyCMW37zASYCxv9b8jRhjV6vQmg/hSMi7nl1H773/J6cL9y1QNei5oknnsB1110Hl0t5tPumTZswZ84cXHDBBXE/X7lyJa666irMnTsXl156KV555RUA0cIpHRs2bMDIyAj/Onr0aG5/SB5Ie5+0az+pMgrn036KHbinxIqaUR2r76OyySctesxKYUrNMZ3HuvOJROftpxxef7UmYcbMNMFnzCQ8J41JmKHWLPxZbDN4bYUds2OPbVz7iWXUkFKTK4M6KTWTqp1orHZAFMGD9LLRM+JD36gfVouQMmzSZrXgwTXz0FjtxL6To/jRSx9p+pyVoNU4N6MQ9j/1jfoQioiwWQQ01eS2zkULdCtqduzYgX379iUpLpkYHx/H5s2bFd2nqqoKc+fOxYEDB9Lexul0oqamJu7LaNK1n0T5ylqFjMXesGrc8g5+ZZnLSHf0PpJSo2NRw/00xkaZtxmk1OQjN0tKjfpiWK1JmMEnoBKUmo+zmIQZas3Cn/ZE/zuzmt2Y7I6+RmxMWG/UqAw8UZiUmjj6dRjpZmQyrqeC+WnOananXZo5xe3Cg2vOg0UAfrfrGH6709gL3gGN9j4xCkGpYWp7S53L1K3quhU1mzZtwvz589HZ2an4Pr/97W/h9/vxjW98I+tt/X4/9u7di5aW9Ev3zMYfku37qXTw9lMoIuZUZOSk1OQz0h1g7ado1a1n+6l7wNjJJ4bkqdGvqBFFMS9joOSpCaouhpWuR0gk1YlkYMyPE7EpsdlZihpWLCpVapgidHazmysmhnlqvOqVGrNHggsNvaafANkElEJfDUsSlpuEU7H09Eas/9JMAMCPXvoIJwwI4WRobRSuLoClluzCsK3O3Awg1UXN2NgYurq60NXVBQA4dOgQurq60N3dzW/j8Xjwu9/9Lq3icsMNN2DDhg1JP9+0aROuvPJKTJqUHK3+ne98B9u2bcOhQ4fw3nvv4eqrr4bH48HatWvV/gmGwYL3rBYBbpcNVQ6pGMmlojZ8TUJC+ykQiuh2MNcyeE8NzFPTO+JDOKJePVPCmD+EYDj62PkkCociIi+SlSA3CWdbj5CIfLElK6RY62l6YxWftkgH+3dUmiq8N2YSntVcww2744GwYh9FPihdZgnIc2qo/cQIhiNxIaNaM4tn1ShrP6WafErHLcvOwNktNfAFI/jT4cFcn6JqtNrQzZCmn8xUaqLH8KkGq+2JqC5qdu7ciXnz5mHevHkAgPXr12PevHn40Y9+xG+zefNmiKKINWvWpHyM7u5u9PT0xP1s//79eOutt9JOSh07dgxr1qzBrFmzsHr1ajgcDrz77rvo6OhQ+ycYBg/eq7DDYhFgsQi8IMnFSJXbmoT8jcKN1Q4wO4ZeHxq2IsFopWaK2wWbRUAoIuKkR5+sGuarqnRY004MZaLSYeVyrpoW4L6YSbi+0s4VKaWcMaUaFiEaSXAqtn2Zm4SzqDSApNQoTRVm49xntbhR5bDyNo8Rag2fflLgB5FyakipYTDVwSJEQ0a1Rk1WTTAc4erkvGnJJuFELBYBc2Lv5yMD+k5AytG+qGHtJ/M8NUztbjO5qFGdU7Ns2bKsEvi6deuwbt26tL/funVr0s9mzpyZ8XE3b96s+DkWCvK9T4wqpxVj/lBOZuGccmo0GOmucNjgdtrg8YXg8QW5x0YrRFGUGYWN/UBYLQJa6lx8+WWrypO/EvJZkQBEp4lqXDYMjQfhmQihRaHokqtJGIi2WU6bVIWD/V7sOzmKKTUuySSsQPVhSs2ANwCvP8TTtFMxMObnhdOsJjcEQUBjtRPHhyfQP+bXXb0bUNE6IaUmGXmQnB5eipmxrJpejw8j40HUZpiO3Nc7Cl8wArfLhhkKc6dOi93u8IA3/yerkEHZAIkW1BSQp0btBZTWlPc6T51JJclW57ipWxRFWaKwsSPdLruFy5t67H8aHg/ygq3NoOA9OdxXo5NZeEiDq7JcAvhYpsy5CvNpEpmVYBZWahIGoi2z2thzztaCYo8/raGSFz+swDBirFtNxD8pNcnoNc7NcLskpTFbCN9uWevJorDAOm1StKgxSqmJRCSPnVavGTs+55pWrwXs+Fl07SdCOfK9T4xq9uZTqdT4QxGEYp6PnIzCOXlqovdx2az8pKrHlQDz00xxO3Nqz+TL1JixTS+z8EAeGTWM2hzGuv98LDeTMENuFvb4gjgcO+in2/mUiNKsGt56ki0snMTNwvpOQPmCYf5ZVDT9xBKFg5GcJhhLEWa01nqcW84shTugumL5NPMU+GkYHbHllkcMUmpGfSHu39Mqk0u6WDan/RSJiDwWw6hE+HRQUaMj8r1PjFw3dbNiQhCAShUnfuapCUVERFQaYf1cqbFyeVOPsW42IWO0n4bBriyUmlrVImVS5H4AUxvAl49JmCE3C38Saz1NratQrDixg9uxLBNQn/ZGH/ss2doFptQM6LzUkj2+w2pRFJUgL7pzaemWIkyp0SpILhVKfTW7Y0nC5yUkCWeCFTX9YwFDigJWBLqdNsUrRLJh9kh3v9ePQCgCiwA0Kwz51AsqanSE732SnQR4qrDKooaPcztsimVVQFJqAPUH4dTtJ/2UGqMnnxhtOo918xUJeVzJql2VsP9k7iZhhlTUjGHPMeWtJ4Y01p35dc2k1DCvjV5IKxKULRZ0yj5PtNQyCh/n1mHyiTGrOfsOqJHxIA6eiqotnW11ih/b7bLzItqIFpSUMq/d68XbT4GQ6otXLWCtp+bY8lAzoaJGR4ZSBK4xP4za3if306hoPQHxRY1ac+OEXKmp0E/eZAFtZhU10qoEfQ5okqdGA6VGYfuJKSvntKo3CTM6GirhsFkwEQzj1Y97+eMpRQrgS/+6hiMiV5Tiipoqg5QalX4Qh9XCJwFpVUKUAR68p1/7SZ5Vk67t9+GxYQBR5UWJP0pOh4G+Gm4S1rSoiR6fRRHwGhCDkMixAvHTAFTU6MpQqvaTK8f2kz/6QVCTUQNI7SdAva+GXYlG20/5bYrOBJ98MukDIQ/g08MnMaiBp0atUZipH2e3uLPcMj02qwVnTI5eIe86EpX156hIJpZWJaRXao4MeOELRuCyW/iJBZBSrPX21PSrGOcGopNofP9TkSs1Xn8IL+w+hm89sxsvf3gi58fR2ygMAKdPjkYMDMsiBhJRk0+TCGtBGTEBNcg9SNq9Xk6bBXZrtNo2owUljXOb66cBchjpJpTD20+Vye0ntUbhXJUaQRDgsFoQCEfyaj9xT40O7SezPTUtddEesC8YwaA3oPoqLxs8PTSP8U21r/8nsTC7s5rzWw1yVrObPxagzp/DjMLHBschimJKxYgVXzOb3HHjwKzI0Hv/E98ureKE7LJb4QtGilKpCYYjeOtAP17sOo7XPz7J1dhdR4bw1c7WnB5zQMVC0Fxx2a04rbEKB09JEQOJKE0SToU0AWVEUaPtODcQPc67XXYMegOmFDU8eM/kcW6AihpdGU7RO6125jZFxD01KpUaINqCCoQjqpQaUZRWOUTbT/osTAtHRN6PNav95LRZMcXtRN+oH8eHJzQvarSYflKj1IiiiE9jhcjZLfkVNTNlLaHGaidPl1YCu2ob9YfgmQilzBdJ5acBpCJD7/A9NcssGS6bFUCwaDw1oihi99FhvLT7OP7vn3viWnpT6ypwfHgCvZ5oonYuOTN8maXGn5tEZjW5o0VN7yguOnNy3O9EUeRKjZLQvUQkpcaI9pPk49ISt8sWK2qMn4DiKxIKoP1ERY2OSEsMpYN5dY7tp1yC9xgOmwXwq2s/yf03LruV/3e13v/UMzKBUESEw2oxdbPr1PqKaFEzNIFzVZgMlaBJTo2K9l/PiA8eXwg2i4DTpygLIEvHrCap2JgztUaVP8dlt6Kx2on+MT+ODo2jtjJZ5flUth5BDisyBscDOZ9ssxEKR/D+ocHYf0/5v4001l3YSk3viA/PvN+NF7uOx3lFJlU5sKqzFVfOm4o5rTWY9cNXEY6IGBjzp1RAssHUND1WJMiZ2eTGf33Um3IHVPfgOIbGg3BYLTm1XItdqQHMnYAqJE8NFTU6EQpHeAEQbxTOrf2Uy94nRi6rEuQHbJfNwk+qWl8FsMmnqfUVpm52nVpXgd3dw5pPQIUjIoYn8t+Lo2b6ie1ROn1ydd4jo7NkCoqaySdGe0NFtKgZHE/ZupIvspRTX2mHIESNj4PegOYp1gDw8zf248NjI6h22rByjvLFuK7Ya1qoqcIfnxjBph2H8PKHJ3i2VYXdisvOacIV86biwjMa4yZUJlc70evxoWfEp7qoCYQi/NikxzJLOZl2QO2O5dPMbq3J6T3PipqTHj/GAyFUOvQ7NUrLLLXJqGHwrBqDl1qKosiPm9R+KmFGZFMqLDgNkLWfch3pVpEmzJA2datZhhg9YNssAmxWi9T+0NhTc8zkySdGG89U0baoGZkIgnmP6yqMyanRwiTMaKl1we2yYdQXwhwVk0+M9vpK7O4eTrmt2+sPcQVhVkJRY7NaUF/pwKA3gAGvX/OiZvv+U3h46+cAgLuvmqvq/VeISk0kImLr/j78aschvP35AP/5BdMb8FcXTMOKc5rSnqibal3o9fjQ6/GhU+V/l6nRVovA36N6wSagDpwcRSQixkVb5GMSBoDaSjvqKu0YHg+ie3A8by9aJga4cqvte9qt04VnNobGg3zRrh5rZtRCRY1OsGq8xmWDTXZVlOtCy1yNwoBU1Ki5spSPcwOQtZ/0UWqmGbzzKRE+1q2xUsMO+rUV9rj3gVpqVCQKc5Nwnn4aIGpA/F8Xz8B/fzaAi2ZOzn6HBKRU4eTXlak0k93OlH6MxupYUaOxr6bP48P633ZBFIG/WjQNXzlXnUG2kJQaXzCMF3Yfx692HMTnsYwWq0XA5XNbcNNF0xW1UptrnPgQyGmhqzTO7VCVn5ULp02qhMNqwXggjOPDE3GF6G7up6nL+fE7JlVheHwYh/v1LWq0iHhIhVntJ+anmWxSInwiVNToxFCKvU+A9MZTnVPDPDUGt5/Ym7RGp9X27Are7GjtNp32P2m1jVdSakJpJ4kYWpmEGbf+xZm49S/OzOm+0lh3slKzL41JmBGdgBrTdAIqHBFx27Nd6B8L4KxmN370ldmqH6MQlJoxfwiPbz+I37x7hF/5u502rFk0DWuXnqaqDdBSG71t70gORc2Y/pNPDJvVgtOnVGNvjwf7ekd5UeMLhvFJbIP8vHb1JmHGaZMq8eHRYd19NYM6KTV6WQSycXw4+tkuBJMwQEWNbgyl2PsEgC/sy9lTk4dSk1tRE70vUwrG/CGEwpG8VAc5klJjblEjrUrQdvohlVk8F5inJhwRMR4Ip9167QuGcag/elBO9KmYQaa23qd87DxNUaPDUstfvvkZ3v58AJUOKx76q/NzurKUllqap9Tc++qneOqdIwCiPoa/+cJpuGZhO29BqIEZ9HvzUGr0zKiRM6spVtScHMWls5sARJXJYFhEQ5WDK4O5wHKS9JyA8oekXWP5RDykgnUB1F4wn/T48P3n9+AbSzqwfNYU1f/dQtnOzaCiRidSBe8BsjeeP5TUF87EWI7he4DcU6OmqJHGuYH4qasxfyipWMuVoyavSGCwD6THF8KoL5jTySEVkikwv9erwm6FzSIgFBHh8QXTFjX7T44iIkb/e3qYa9XCs2qGkrNq9nKlJrWi1KjxUst3Dw7ggTf2AwDuunIOzphSndPjsELfzJyaz05FzbK3Lj8Dt116Zl4XGc210dc5P6XGmPfaTNk+MoZ8iWWu6dlAVKkBgMP9+ik1wzEF32oR+IWKVuTafvqvPT3446d9GPOH8ipqCiF4D6BEYd1IFbwHxBcH4yrka24UzkGpceai1ITilRq71YKKWIGjVQtqPBDiV+FmFzVVThvfmKulr0ar9pMgCIrM2p/2SCbhfA7wWtFaVwGLEC2ST8mKE1EUpfZTGkNzI1dq8i9qBsb8+Pbm3YiIwNXz27D6/LacH6sQlJoTw9EC5AtnNOatmuan1Gjz/lbKLNnmeMbuPE3CjA4DxrpZERid7tP28+mWtajV0BMrZg/0JU+VKaGQxrkBKmp0I93SMqfNwkeX1ciErJAwylPDN3TLxiPZlcWIwv1D2WDm0RqXLW5CzCym6uCrGdIgeI+hZFO6VknCWmG3WrhnQ24W7vX4MDIRhNUipFVMJnGlJr/2UyQi4h9+9yFOevw4fXIVfnrFOXk9ntlKjSiKOBErvFvr8s92Yv8+J3NQagZj/zZ6j3Mz2ATUwVNeBGPKc1cOm7lTwZSaEyM+3fxSPKhQB2VLUmrUHZ9ZUTPoDeR0ASGtSKCipqQZSuOlEARB1oJS/ubLZ/qJGRvzaT8B8isBrYqamJ9mUmHIllN12NY9qMGKBIaSCahPe7U1CWtBWwq/Ehs7n9FYlTZXhLWf+vNcavn4joPYuu8UnDYLfnnd+XlnkLDPhFlKzaA3wCevmmvzL2qaY0qNNxBWfUI0YpmlnKl1FahyWBEIR3BkwBvLQJqAIACdeSo1DVUOftGYaQlrPrDXq9GtfRHIzg1q/ZrytuP+3uRgw2ywz3VbgXhqqKjRCdZ+SuU9kYoa5VcDo/msSchBqZlIMAoDklKgVfupe7AwJp8Y0rZu7dtP2ig1mYtKURTTrh0wk1RmYdYmS8ynkcONwmkWGCph15Eh3PvaPgDAnV89RxMFi7VzzZp+YlfWjdXOvMMVAaDCYeWfbbW+mlx2Z+WDxSLgTN6CGuN+mtMnV+edkyMIAjoa9V2XwJZx6qHU5Hp8lrcdU6U1Z2JkIsj/e9R+KnGGMxhE1brU/aEwL0jceYTvqcnVSBzpBmRKjVbtJ5MXWSbClJpjGio1PJNCE6Umc6pwr8eH4fHMLR0zkLJq5EpNdkWpMXbgH/D6c9qePjIexLee2Y1QRMSqzlZcu7Bd9WOkgn0mzMqp0bL1xGCKj1pfjZEj3Qzuqzk5mnfoXiJ6+2r0LAJzCd8TRTGukE2V1pwJdgHYUOXQNYVZDVTU6MQgH+lOLkIkmVDZm88rU3TYlm815DbSndx+kpZaaqPUsJNcW4EUNW16KDVpvFW5UJOlqGTqx+mTqwoiBIuRKqsmW0YNIEn0vmCEJ5aq4Se//xjHhyfQMakS//y1OZoZM5lS4zdJqeFFTa12V8bcLKxSqTFqmaUcPgHVOypbYlmnyWPzCSi9ipocFqgqRT79pPQiYNAbiLMlHFCp1BTSegQGFTU6MZxm+glQ335iik6F3ZrTpIPDGj3BqfPUpG8/aeepiX4gCkepiT4PLT01Q7HldVpcyWbb1F1oJmEGm2xj/96BUASfxSYtMrWfKh02PnGXi4Fx2/5TAICNX5ur2Yg+YL5Sw9pPLRoqNS0xpUZNqrAvKMtcMUGp+bTXgw91U2p08tToqGyx93goIip+b/YkFLH7T46qUkWPMz9NgbSeACpqdEEUMy8x5EqNwuJglGXU5GASBnJUakLJ009S+yl/pUYURZmnpjA+EKwnfGrUr4lfQh60pen0U5rXX9r5VGhFTfR1PTE8gXBExOenxhCKiHA7bVmv8HIN4Bvzh7jUP7dN/c6qTLhMThTW4+qYmYUTT3KZYCqN3Srw96YRzGyOtlYPD4xj1B9Chd0at00+H07jAXz6KDX9OipblXYrmBip9MKTKXOzmtywWgR4fCGc9Ci/gCi04D2Aihpd8PhCCMe246ZsPznUudTH8hjnBnIravwp20+5jQymYsAbwEQwDEEoHINZfaWdKwNqDu7piAva0uCgn02p4Qm9Giyy1JIpbhfs1mhwYK/HF5dPk60llGsAX3fsSruhyqGpSgPIcmpMGunmSo2W7acclBp58J6RmUiTq51xU6Vz22o1Szhn7afjQxOqjpdKYe9jPTw1Fos0WavUItAT+/fumFSJjtjfrsYsXGjj3AAVNbrAzKGVDmvK6QTJU6Ow/ZRH8B6QY/heyvaTdiPdTKVprnFpMsGhBYIgaDoBJQVtOTQ56Gd6/X3BMA7y9QiFpdRYLQK/kjs6OI69MZNwptYTozFHpaZ7MPpa6BHqyHNqTBrp7tHDKJxDAJ98maWRCILA82qAaJKwVkx2O1HpsCIiar8yBZCOCY06jcCr3dHXOxJ9L7XUurjapaaokYL3CsNCAFBRowvSioTUH3a1OTVjeYxzA7KRbhWemsQt3YBsU7cG7adCWY+QiJRVk/8BTVqRoI1SkGn66bO+MYQjIuor7WiqMX89QiKSr2acG5qVeH/Y6KtqpSb2/urQ4f1lplITCkd44dGqZfuJTT+NKH+duVJj0Di3HHlBrJWfBoiNdevkqxkPhPhxVa/XTG0AH1P9mmsr+Kh8LkoNtZ9KHG4STnMyUzvSzZdZGth+SjXSzaefVIQGpuNogWXUMLRUaqRlltocwDIpNXKTcCGsR0ikjU9ATSiafGKwCagBlQF87ISkhwndaaJS0zfqR0QEbBZB0wkaptT0j/kVHyf4MkuDlRogvqiZNy33zdyp0GsCihWBLrsFlQ591Gm155Ze3sp0YWZT1Ku0X+FY93ggxI9xhWIhAKio0YVsJzO1yY/5tp9yy6lJ4anR0ChcaJNPDC2zaphSo9VVWaZEYWnnU2G1nhjMLPzR8RGuNMxUUNQwpeZUjkqNHmnVPFHYBKWGjXM317r4uhUtaKhycEW3b1RZC2rAhHFuxtypUfN3W32FJqnKcvRSak7Jxrn1uvBQu9Sylys1UvvpgMIJKHbh5y6QNTeMwkjLKTGUt58MMgrn0H7Se6SbTz41FE6FD2ibVaOfUhNK2njNwuwKzSTMYErNf3/WH/u+QlECLCsIC6v9xKafjFdqTsROQlpm1ADRtsuUGieODU3gpMenaOMyUx6M9tQAwLltdfjXa8/DjEbtQyb1Vmr0LALVrLIRRZFfYDTXuDC1vgJ2qwBvIIzjwxNZ3wOFtp2bQUqNDkgZNVnaTyqVmlynOKT2k/IrS19M1YlfaCmZ0HJJeJVTaGnCDC33Pw1pvMGYeWrCERFeWRidKIrYG2s/zS5UpSZWLDK1UOkah8k5LLUMhSO8KNVTqTEjfE8PkzCjRaWvhhXtRi2zTOSK86ZqPq4P6KfU8OA9HYtANUqNxxfioZbNtS7YrRZeJB5Q0II6VoB+GoCKGl1gKbKp9j4B8pwalZ4aA3Nq/BmMwuGImFPCKyMYjnAZveCMwrGTb++Ij4/l58qAxkpNhd0KW6zlIG9B9Y36MTQehEVAQa1HkJP476w0IJBd1aoJ3+sZ8SEUEeGwWdDk1v7kz5UaE8L32OemRYcTSZPKCSh2kjZqmaVRnNYomdpDKtTtbBixJ0uNtYG1nuor7fw4f2bMV7NPgVn4WAEG7wFU1OhCpr1PQA6Jwix8L1+jcJ7tJ/lJNZ9VCSeGJxARoyeHySb04zMxxe2CzRLNVFGT2ZGKoSzvA7UIgpAyq4aZhGdMri6o9QhyJlU5eAYQoLxNxk4AQ+NBxScYdoXdXl8Bi4a+EwZ7jQOhSN6KpVqk9pP2xRof6x5RplIavczSKJrcLjhtFoQiIk4M559XxejnGTX6HfNqVOx/6hlh/iypKJmpYgLqOG8/UVFT8rBo/FTBe0DuI93uXHNq8trSLZ2I0p1U1cJMwm06nXTywWoR+Khsvi2oQS+bgtPuoJ8qVbjQTcJA9L0j908pbT/VVzrA3iJMAc0G99PE2ghaI/9MGL0qQVpmqf2JRFpqqUwVM2OZpRFYLAIPotPSV2PE66Wm/SSffGKoKmoKMHgPoKJGF5QahX3BiKKrzzFTRrqTp58AeVZN7kUNn0wpsNYTg/tq8jQLM0+NlgexVBNQ3CSssFAwC2YodNgsPI4+G1aLwJWu/lFlRc2RWPCeXu8v1n4CjF+VoEeaMIO1n04qSNOOz1wpLLVVC/TY1s1G4PVYZslQU9T0yCafGGys+7O+MUSytN+lFQmFdRynokYHsrUdqmTFiVdBC2o03/A9jRKFAfWJlalgJuFC89MweFZNHkqNKIqabuhmpMqqKXSTMIOZhc+cUq0q1p4H8HmVKQjdOmbUAIDdauHj1EYqNROBsJQLooNSw43CCtquTHVw2Cyo0ilzxUzYBNShfu3MwkaEFVY7WZaYCqWmRipqOiZVwWGzwBeM8ON0KnzBME6NRj+PhZRRA1BRozmiKGJoPHP7yWGz8Ks9JUF2Y1oZhRV6EkRR2vKaqNTwVNs82k/FotQcy0Op8QbCvIhs0MgoDMhThaOvvz8UxuenoleThTrOzTgrVnTNm1an6n48gE/hBJTUftLv/SWNdRun1DAPRKXDyt8HWiI3CmfzCvHJpyptVoAUGnooNf2yXVl6oSZRmO19kis1VouAMybHzMK96VtQrA1a6bCmnfI1C8qp0Zhx2cks09RLtdMGfyigyKXOPTXOHEe6rerC9+S3S2o/OdMHwCnl2CBzzRdoUaOBUsNaTy67BRUaXsnKs2oAaT1CbYWdGz0LlavOb0NDlQOLp09SdT92ElAyASWKou5KDRD9XIwHwoYqNaxd0FpXoUshwYqaQCiCofFgRoM7TxMuwdYToP227khExCBvPxWKp4btfYpXWmY2VeOTHg8O9I1hxTmp7ytfj1BoRa1qpWb79u1YtWoVWltbIQgCXnzxxbjfC4KQ8uvee+9N+5hPPvlkyvv4fPEy6MMPP4zp06fD5XJh/vz52LFjh9qnrzus9eSwZY7CZqqLN0tRIx+fNmqkW3716bIltJ+4UpN7+6nQlZo27qnJXXpmV7JaqjQAeHInKyr3cpNw9o3XZuOwWXDZOc2oVXllN0nFUsvh8SCX3vVsb7pMUGrYiaRFh8knIPrvw/xfvVl8NWYG7xkBU/mODk7kHe0ARM8L7GH0fM3UTT8xpSa+MGVJ35nMwscKdPIJyKGo8Xq96OzsxEMPPZTy9z09PXFfTzzxBARBwFVXXZXxcWtqapLu63JJH95nn30Wt912G+644w7s3r0bF110EVauXInu7m61f4KuyIP3Mp1klK6Ilys5Vc7crvjl7SclI6jMJGyzCEneh3w3dY/6grw9V2hpwgy5UpPryK4efhoASdNnn8p2PpUqjTyAL7tScyRWMDfVOHUdb3eyVQkGpgr3DOuTJiyHtSKyxRmU6jg3o7Uumq4bCEd42y8fpMwquyo/mVqYUuMLRhDMYDfw+kP83NOcqNRMiRY1mdpPx/l27sI7hqu+9F+5ciVWrlyZ9vfNzc1x37/00ktYvnw5ZsyYkfFxBUFIuq+c+++/HzfeeCNuuukmAMADDzyA1157DY888gg2btyo4i/QF6XR+FUKU4XZ76M+nNwO0k5r9H6iCIQiIuzWzFf0qca5Ge489z+xce76SnvOCcl601JbAUGIHhgGvIGcphW0ThNmJI507+0tDpNwPjRypSZ7USOtR9BnnJvh5PvUjFNq9BznZjTXuPDxCQ+/ik8HKzBLbZybYbUIaG+oxMFTXhwZGM+7VW5ERg0QP4Qy5gulvahiZnC305Y0gMKWhR485UUoHElZhEnBe4WntutqFD558iReeeUV3HjjjVlvOzY2ho6ODrS1teErX/kKdu/ezX8XCASwa9curFixIu4+K1aswNtvv532Mf1+PzweT9yX3mQb52a4FW5TzXfvEyApNYCyFlS6ySdAaj8pXW2fSKGuR5DjsFkwxR09+OQ61j2oV1EjU2qi6xFiG68L3CScD9L0U/b2U3fMA6HHegQ5Zig1J5gHQocVCYwmhRNQZi6zNAotfTVGZfrYrRYecpmpC9CbYpybMbWuAhV2KwLhCA6nWRVxvEBXJAA6FzVPPfUU3G43Vq9enfF2Z511Fp588km8/PLLeOaZZ+ByufCFL3wBBw4cAAD09/cjHA6jqakp7n5NTU3o7e1N+7gbN25EbW0t/2pvb8//j8oCbz9VZVYhlMZZ8zThHP00QD5FTQalJkdPzVFmEi7gogbIfweU1sssGfL236kxPwa9AVgEKTSrFJGWWmYvao4YYBIGJE+NkUoNU0/0PJE0K8yqKXVPDSD5arTYATUwpn9GDcOtYPFwqowahsUi8LyaA2l8NYWaJgzoXNQ88cQTuO666+K8MalYvHgxvvGNb6CzsxMXXXQRfvvb32LmzJn4xS9+EXe7RI9K4qbiRDZs2ICRkRH+dfTo0dz/GIUMZdn7xFC61HI0z+A9ICqlslwNJWPd6YL3AHn7I0elpsBNwoypMVk1V6VG6xUJDGmkO8RVmumNVQW7HkEL2Ing1Jg/q8fJiHFuQPpsGKXUiKIo7X3SySgMyFOFMxc1Zi+zNAKu1PRroNQY6EFSMgElTT6lfi+dyZOFkxdbBsMR/v4oCU+NUnbs2IF9+/bh2WefVX1fi8WChQsXcqWmsbERVqs1SZXp6+tLUm/kOJ1OOJ3GyqNDCqdeqpW2n/IM3mM4rBZMRMLKlJpQpvaTcnd9KthJp70Ae7FyNFNqNPfUSEoNNwmXsJ8GkE4EgVAEY/5QRi8Wf3/pXDQbnVPjmZA2KuuRJsyQ9j8p89SU2jJLOVoqNUZk1DCqY5+PTBfMklKT+r3ElJpUE1C9Iz5ExGgHoLEA//11U2o2bdqE+fPno7OzU/V9RVFEV1cXWlpaAAAOhwPz58/Hli1b4m63ZcsWLF26VJPnqxXZgvcYrEjxBhR6avJoPwFSC0pJrgbf0J3CmCxJmzm2n2LKR+ErNfkF8LH9X1qPdMvXJHxSJEnC+VLpsPF4hEwtKF8wzK8gO/RuP8WUGqNyalhx3VDl0DT3KBElSo0oipLyUMLtJ6bUHBn0Zl0ZkA1urDZAqalREMCXau+TnEw7oJgvsq2u8Hb3ATkoNWNjY/jss8/494cOHUJXVxcaGhowbdo0AIDH48Hvfvc7/OxnP0v5GDfccAOmTp3Kp5Z+8pOfYPHixTjzzDPh8Xjw4IMPoqurC7/85S/5fdavX4/rr78eCxYswJIlS/DYY4+hu7sbN998s9o/QVeUGoWrFYYkaabUqMiqydx+yl2pEUWRt58KdZyb0ZavUqNX+yn2+kdEYNeRIQCFv/NJCxqrnegeHEf/mB+nNaaebDo2NAFRBKocVt29HkYrNT1Z2gVawQL4RiaC8AXDKY8BXlnoYKmOdAPRCxurRYAvGEHfqD+l/0QpAwa265S0nzJ5agCpqDnU70UgFInzZRbyODeQQ1Gzc+dOLF++nH+/fv16AMDatWvx5JNPAgA2b94MURSxZs2alI/R3d0Ni0V6kYaHh7Fu3Tr09vaitrYW8+bNw/bt23HBBRfw21xzzTUYGBjAT3/6U/T09GDOnDn4wx/+gI6ODrV/gq4o9VIoHekezXNFAoOlCivx1ExknH6KnlR9wQj8obCqMfNTo374QxFYBH3HUrWAZ9XkGMCn10i3y26B3SogGBa5ilTq7ScgevKMFjXplZputshyUpXuQYRGKzVGjHMD0av8CrsVE8Ewekd8KQvIwdi/QYXdikpH6YbS260WtNVX4MjAOA4PePMqaowa6Qak1PeMSo0ns1LTUuuC22nDqD+EQ/1ePuYNFHbwHpBDUbNs2bKsZr1169Zh3bp1aX+/devWuO9//vOf4+c//3nW//Ytt9yCW265RdHzNAvWdsjWfmIj2tkShSWlJr9MF6cqpSZa1DhTXKXJFaNRXwjOauVFDfM7tNRWwK5jAJUWME+NxxfCqC+oKlMnEhElxS7LFJxaBEFAjcvOr/xqXDa06nz1XggoWWrJ1iPo3XoCpILfb5BSc4KtSND531oQBLTUunCw34teT+qipt9rXCvFbDomVeHIwDiODHixeIa69R5yWNvUiOkn3gVIc27xBaXFqOlWqwiCgDObqvFB9zD2nxyNK2oKeZwboIWWmjOsdftJY0+NmvZTRYqixmoReEGmdlN3oa9HkFPltPHCVG0LamQiyCPRtR7pBiS1DIiqNIW+HkELJseWWvaPpldqWJqw3hk1ALhCaVj7ySClBpAttkxjFh40KHOlEJgeey+ly2tRgi8Y5henhTD91OeJFqUuu4WvXUlFOl9NIQfvAVTUaIo/FIY3NqGQbepFcfuJ5dRo5akJZz8IZwrfA+LNqmpgacKF7qdh8AkolWZh5qdxu2y6KFI1sgK31E3CDCVKjZFxAVypMaz9FGsXGFDUZDMLl/oySzlabOtmqqrDaskrRFUpbu57TH1u6ZEtssx0QZSuqOFKTYG2n6io0RAWvGe1CHEnnlS4DcypAWSeGjUj3Wn8MkrCnVJRTEoNkPtY95DOkyFxSk0ZmIQBZQF8RgXvAcYrNSxN2IhWYzalZkAnv1ghclpjTKnpz12pkU8+GaGqurNMP7FiNV3ricGKmgOyrJpwROQ7yArVU0NFjYbw4L2KzMssgfgt3Zk8StxTY+hId/rpJ0A+AaWu/cRGAfXOENEKySysUqnRKaOGUeOKbz+VA/IAvlSIomhY8B6Qu1Jzz6uf4u7/+lTVfcIRkRcYRrSfWrIsteSR/2XiqQGiSk2uy22Nfr2yreDpyTLOzZjZHM2qOTzg5cX7SY8PoYgIm0XAFHdhevmoqNEQdjLLZhIGJOUlGBYzHhi12P0EqPXUZG4/uXNMFT5qUDCaVjCl5phapYZNwOngpwGkVGFBAGaV8HoEOZJSk7qo6YtN1lktgiEnfmn3k3KlZtQXxMNbP8ej2z7nnwUl9I/5EYqIsAjgO8n0hCk16ZZalvoySzlt9RWwCNEx9kyTd5ngk08GBdVlaz9l2vskZ3K1E3WVdkRE4PNTUbWGqdYtdS6eUl9oUFGjIaz9pESWrZKNQmZqQWmm1FiVX1lm2tINxC9VVIo/JAWjFXqaMKMtR6VmwCClZvqkKl2D2AoJptSkW2rJWk+tdS5DJuucKpRPBpuMBIAPuocU34+NczfXuFJuTNaa5mxKDW+vlr6nxmmz8iI518WWRq5IALK3n5RmHgmCgJlT4n013CRcV7jHcCpqNETp3icgujSsKnZCyjTWPaaVp0ajkW5AnlipvP10PBaMVmG3Fs2+mKmxD26unhq9PAesWDq7tTxaT4BU1AyPBxFMkbXEW08NqYP5tMaVg1LDjg8AsLt7WPH9jDQJA5LXom/Uj3CKJF2+zLJIPsf5ku8OKCOXWQLZp596s6xIkMNaUGwHVKEH7wFU1GjKEN/MrCybJNtYdyQiYiygradGzULLVCPdgGxTt4r2U7csSbhYRpCZUnNq1K/q5DUYuyLXY5wbAL42byrWXDANty4/Q5fHL0TqKuxgavdgCrWmO3YVbVRrU0oUVqHUyIoaNUqNUWnCjMluJ6wWAeGImLLdx5dZloFSA+S/A6rf4BF4dnweC4RSrndQ6qkB5GZhptQUdvAeQEWNprC9T0rbDtnGuseDYTBvmtuE8L30I93qlRrJxGnMlbQW1FXa+c6hdP6CVLCTl14HsaYaFzaunouzy8QkDESVTbY8sT/FidZIkzAgTxRWXuyy9jQAfHLCo7hQNjrszGoRMDmmKiS+76N7n2LLLMtNqcmx/WRkmjAgKTWimLxbMBiOcLN9U5bpJ0AqavbFippCD94DqKjRFKV7nxjZUoVZ68lqEdIWGEpRN9Idm35KM9It3xStFDYSeZpBJx0tEAQhp6wavaefyhXWtkxl2DxicFyA1H7KTakJRUTsOT6i6H5shNYopQYAmtJk1Yz6QwiGo1da5WAUBvJXaqQ0YWNeL6ctukoFSL7w7Bv1QxQBu1VQ9O/HipqjgxMYD4RkSk3hHsepqNEQdiWmtv2UTqkZkwXv5duyUdN+8mcxCkvtJ+VKDQuvmlZESg0gG+seVn5AG+SeGm1XJJQ73CycSqkxMKMGyNEoPB5/EfDBEWUtKJ5RY+DVcXNN9LVONAuzE3S105b2+FBqsFURh3Mc62bKllGeGkEQ0k5AMT9NU41L0YbthioHL8b2nxzjSg21n8oEfoWuUKlhE1Dp2jijGq1IALQd6WbtJzVKDbuSLialBsgtVXhI5fuAUEa6AL4xf4hPmBixIgGQtZ/UGIW9UkEAKPfVMKOwsUVN6gC+QdZ6KhOVBpAK5VFfKKkwzYYoiqbk+qSbgOpV4adhMLXm7c/7EYgtJM5nuafeUFGjIXzvk8IPvDyALxXSMksNihqr8q3CWUe6VYbvhSMiv5I+rUiVGqVZNYFQhC+SK6cDvxGwK91ETw17b9VX2uOCCfWEG4VVeGpY++miMxsBAB90D2e98veHwvzvNbL9xCZjEoua/jIK3mO47Fb+2qv11XgmQgjFzLpGHg/YOSNxqSUznSuZfGKwoubNT/ui960xJjYhVwr3mRUhQyrbT9lWJWi1zBLIbaGlVuF7vR4fAuEI7FbB0AOzFvAAPoVKDStso6syqP2kJZPSeGr4+g0DC2ZW8AfDYsqx51Sw9vRFZ06GzSLg1Kg/a1wAKyqcNouhJ8Xm2mgBmeipGdR5BUihIvlq1BU1bKO522XjqzWMIN1Ydz5Kza5Yu7SQx7kBKmo0IxSOYGRC3ShvtpHuUS2VGlUj3crC99KNDCZyJJbv0F5faUh4mJacPjma07D3hEfRyWuQm8XtinrWhHIa0yy17B6M+bUMTKqWF/xKJ6CYUtNS68LsWMbQB1nyauStJyOjEPj+pyRPjbHpuIUCU5gPqdwBJZmEjX29JE9N/IVnj8K9T3JmNkWPgezwV8gmYYCKGs0YkakWmda5y8k20s2D9zS44peUmswHYFGU1jakNwpLI4OJ8mYqDjMTZ5H5aQDg7JYauF02jPpD+OSEJ+vt1fqqCOU0uplSE1/UsKmUDgOLGvlVt1/hBBRTauoq7Th/Wj2A7GZhlibcWmeswslOeicT2k98mWUZtZ8AYMbkaFFz8NRYllvGY9ZKCS2VmjMTVrEU8jg3QEWNZrDWU43LpliNyDrSraFS41Q40i333KQrapw2K/cUKGlBHYldSRebnwaItpEuOK0BAPDeoYGst6dxbv1g6kCiUVhqPxlX1FgtAh+bVeqr4TvBqhyYN60OALA7i1lYCt4z9kTCjKDeQDjuan/A4CC5QmFGY1St+PyU2vaTOR6kdEstle59klNbYY9Tdgp58gmgokYz5AcspWQf6dbBU5Ol/SQPBHPZ0r89WAtKiVn4SL+xwWhas2hGtKh592D2ooavSCClRnPk009yg223wRk1DKbWKMmq8YfCGA9EP1t1lQ6u1HycJYTvhIHbueVUOmx8HYrcLDxo0knabJhSc6h/TFHLndE/amzwHiNV+ykcEfmIvtoi+cxYCwogT03ZMMQ3dCv/sCsd6dbUU5NFqWEHaJtFyKg4cbOwgrFuNjFQjEoNACyeMQkA8P6hway+Gr4iocyuZI2A+RIC4Qg8sc9GKBzh4/ZGF83MV6PEU8NaT1EDuQ1t9RVorHYiFBHxUYYQPt5+MsFg35wigM/ojdOFQntDJexWAb5ghPtSlMAzagqg/TQg2/auNghwlqwFRZ6aMkFt8B5g9Ei30qIms0mYoXSsWxRFwyPstWZ2Sw2qnTZ4fCF82pvZVyMpdjT5pDUuu5V/FphXoWfEh1BEhMNmQZPb2BO/GqWGL7utsEMQBAiCgPNjLahMeTU9Bi+zlNOUIqtmQOdlrYWK3WrhSqAaXw03CrvNUWo8suMzW3kxxa1+2/tMWVFT6BOsVNRoxKDKjBpA2ueU3igcSxTWsP2ULadmIkvwHoO1n7J5ak6N+TEeCMMiFH6Fnw6b1YIFp0XbBe8eHMx4WylNuLyuZI2Ct6BirzNflFpfYfi0mZMpNQoC+Ia8kkmYcX4HMwsPp73fCb5rx/gTCTt5sZZFJCJyRdroaZ5CYEZsEvLzPvVFjdHKlmRtkI7PTHHLJTiPTetNraso+CRpKmo0Qu3eJwCockbfHIlmLgb31Bg40q1UqVHafmKTKa11Ffw5FCOsBfVeFl8NKTX6wgP4Yl6FIwavR5DDdqP5FGQ/Dac4PsxrrwMQVWpShfB5fEE+XWi0URiQJqDYFb7HFzQlSK5Q4BNQ/crNwiynxnCjcIr2Uy6TT4xzWmtw15Vz8LOvd2rzBHUk/7MlAQAY9ubefhoLhCCKYlIOBffUGBi+JwXvadN+Otxf3H4axqLpUbPw+4cHEYmIaVUBdmVGI936wKZu2FQJm6wzY/s7U2qUbNse4uPc0vvi3LY62CwC+kb9ODHiSxqVZa2n2go7j38wkqYEpYapY26XragvUHKFZVYdVDEBZfQyS0ZNiqKmJ4fJJ4YgCPjG4g5tnpzOlN87UyfyaT+JIvhkhBxTPDUhpe0nZanCPEOkSP00jDlTa1HpsGJ4PIh9J0fT3i6XKThCOZMSlloeNWnyCZCUGiWrR4ZkoYyMCocVZ7fEQvhS5NWc4OPc5ngYmhMC+MwKkisUTo8pNZ8r9NQEQlIgq9Htp1TTT70mv5+MgooajUglL2fDZbfAGrviT+Wr0XKk26mw/cQ3dGeJ9K7hRrTMRU2xTz4x7FYL5sc8EOlaUKIoUviezkzmqxIKoP2kQqlJtxcuk1m4x4RFlnIko3D0tS7HZZZyWFZNz4gP44HsURZDspUpSgNZtcItiwthrU1JqSnskex8oaJGI4bGk42A2RAEAVWOmK8moagRRVFKFHZqmSisVfsp8zg6w4xgNL1gvpp0ZuGJYJhftZfrgV9vJKUmmlXTbaIS6FSl1KQ+PsxjycIp1iWYlSbMYFf0/WN+BEIRaZllmb6366scXGlT0oJihXdDlcNwEztT94NhKSG+15O7p6aYoKJGI4ZzbDswmTDRLOwPRbgpz1hPjcrppwxKjSiKOFQinhoAWDxD8tWkMnYylcZps6DSUdgTAsWKPIBveFwy0rabqNQom35KreCxEL5PTowkKT4nTEoTZjRUOXjbum/UV7bBe3K4r0aBWdjMIrDKYQOzaHp8QYiiKCk1KvY+FSNU1GiAKIqyDd3q3sDVafY/MQVEEIBKDUbo2MEpFBEzJmKykW6n0umnifRKzfB4kP8dZrQHtGbu1Dq47BYMegM4kGKsk43tNlQ5DF0+WE7w6acxP47EVMCmGqcpY6ZSTo0So3CypwYA2hsq0FjtQDAs4uMT8SF80ji3OUWNIAiYUhN9vU96fGW7zFIOm4BSMtbNXi8zPEgWi8DPLaO+EIbGg/yCtomKGiIbHl+IJ82qaT8B0lh3YhuHm4QdNk2kS/m0QiZfDWs/VSiefkqv1DA/TXONCxUloFw4bBYs6Ei/MoGlh5KfRj8aZZ4aHurYYI4KKCUKKxnpTp5+AqKFA29BJeTV9OQxgqsVzTJfTbkG78mZoUKp4Rk1Jilb8glVtkOssdpR8pNrpf3XGQRrPVU5rHHbe5XANnAnpgqPaTjODcQXNZkOwkrbT6kSKxMplcknOWy0+70UvhqafNIfphJ4fCF8FrtaNqP1BEhqpjqlJvm9MS+FWTgSkdoFZhmFAWn8t2dkwvSTdCEgjXVnV2pYRo1Z02LVsqWWJ/MI3is2qKjRgMEc9j4x3OnaT7EkSC3GuQGp/QRk9tXwke5s008VTNoMpvSXACVa1LAQvkMDSX837X3Sn9oKO2wx5ZJtuDbr/eVSmNIdiYh8tDdVjtX53CwshfANeAMIhCIQBHNPREypOemReWqo/YSDp7xZF1uaXQRKAXxBmZ+mtCefACpqNIHvfcohRZanCuus1AiCIGXVZGg/+VWG7wXDYtrdN0cGzAtG04vO9lo4bRb0jwWS8iqkDd2UJqwXFovAlbCuo8MAzPNrKVVqPL4g2Pkv1YXPuW21sFoEnPT4+cmHtQsmVzthV7mnR0ukpZZ+3l4tZ6VmWkMlbBYBE8Fw3KLPVHBPjUlFoDxVOJ804WKDihoNyGVFAqM6zf4nLYP3GEomoJS2nyodVp6xk24CqlQyauQ4bVZ+ZZ042j3I20/leyVrBGysm5vQTVJqWPZTtoWWbIig2pk6ibfSYcPZLdGFgawFJY1zm3tlzUylPcMTNP2ExMWWmX01Aya/Xm5Zllg+acLFBhU1GpBP4BpflZDGKKxF8B5DXVGTWakRBCFO3kxFKbafAGDRjNRmYa7U0N4nXUmMnDdLqWGfEX8os1LDN3RnUPDOTzALn+DBe+aehNiV/b6To1xtKncjvGQWzuyrkdpPJnlqZAF8pNQQquDtpxzaDmk9NT4dlBoFqxKUjnQDUgtqJMVY96gvyK9USq2o4cstD8Xn1bC/lzw1+iI3XlY5rKaFwSlVapSkjSeahblSY3L6K1Nq2PGortJuajusEDhd5qtJhyiKPHzPrPenvP3E2pmk1BCKGMph7xOjKmtRo91Vv7SpO/2VpdKRbiDzpm6m0kyqcnAZtFQ4r70ODpsFp0b9PFwQkHtqqKjRE/lJYtqkKtMygRQrNd7saeNSCJ8H/lBYGucukPYTgyb7ZFk1GSagvAEpXdz8ke6gLB6AjMKEAvLy1KRtPwXjfq8FDgXTGko9NUDmTd2l2noCoiez89rrAMT7avIpbgnlNLolpWZag3kHaRc3Cmfz1GQ/PkxrqMSkKgcC4Qg+Ou7hacKtJl9ZO2yWuCLSLNNrITFDwbbu/tGoSlPpsKLSYfyGdUC66Dwx7OMLk0s9TRjIoajZvn07Vq1ahdbWVgiCgBdffDHu94IgpPy699570z7m448/josuugj19fWor6/HpZdeivfffz/uNnfeeWfSYzY3N6t9+rqg5EosHenaT6zIcRvcfvLFfpdtpBvIvKm7FE3CchbLRruB6NguM4TS1ay+yE+yZk7WSe2nzEqNkva0PIRvd/dQwRiFgXi1ht7bUlbN8eEJTARS/9sXwqQYsy4c6BsFEI1DKIUQ1GyoLmq8Xi86Ozvx0EMPpfx9T09P3NcTTzwBQRBw1VVXpX3MrVu3Ys2aNXjzzTfxzjvvYNq0aVixYgWOHz8ed7tzzjkn7rH37Nmj9unrQj6ha+naT3z6yWCjsF+hURiId9cnUorj3HIWy0L4RFHEqCxVutyNlHoj99SYFbwHSJ+RbPvUJKNw5vcF89W8d2gQfbEr/RaTjcJAvLm0nCefGA1VDn4Bm84sLO19Mk/ZYsfnk57Ye6kM/DQAoPqMuXLlSqxcuTLt7xPVk5deegnLly/HjBkz0t7n3//93+O+f/zxx/Gf//mf+OMf/4gbbrhBerI2W8GoM3LyG+k20Chsy55To1X76XCs/XRaY+m1n4DodmW7VUCvx4cjA+OIxAzD7jRju4R2yIuaDhOLGi2VGkDy1WzffwqiGFVWC6Hd0yQvakipAQDMaKzCB93DOHjKi3Naa5N+zyafzEoTBpInZ8vBJAzo7Kk5efIkXnnlFdx4442q7jc+Po5gMIiGhoa4nx84cACtra2YPn06rr32Whw8eFDLp5szy2ZOwbJZkzHFrf4N7M4y0q2lUuNUNNKtLHwPkC+1TFZqumNFTSksskxFhUPy1bx3aID8NAYiVwvM9GxJRmGFnpos743O9mgIH3u85lqXJnvf8kXuwzBrPLnQyOarkZZZmnc8SCxqSKnRgKeeegputxurV69Wdb/vfe97mDp1Ki699FL+s0WLFuHpp5/GzJkzcfLkSdx1111YunQpPv74Y0yaNCnl4/j9fvj9fv69x+PJ7Q/Jwr9cfW7O92Xtp4lgGKFwBLaY74UVNTVatp9UjHQrUmoqUu9/mghIaZul6qkBgEXTJ+FPh4fw3sFBHrhHRY3+THY7MdnthEUw13PCPiPZlBqla1QqHTac1ezGxyeixymzM2oYzeSpSeL0LFk1ZgfvAZKSziiHFQmAzkrNE088geuuuw4ul/IP5z333INnnnkGzz//fNz9Vq5ciauuugpz587FpZdeildeeQVAtHBKx8aNG1FbW8u/2tvbc/9jdIKtSQCiY4CMMV1HuvMP3wOkgisxfI9tT65x2XIyTxcL8hC+wZgxkFYk6I/dasHrt12M12672NTMFLa81pdFqVGTY8VaUID5GTWMZvLUJJFtrFvKqDFP2Uq0LpSLUqPbEWHHjh3Yt28fbrrpJsX3ue+++/DP//zPeP3113HuuZnVj6qqKsydOxcHDhxIe5sNGzZgZGSEfx09elTxczEKp83Kiw25r2bUBKOwKIpc+lZlFE5oP/HJp0bzMkSMYH5HPWwWASdGfPjzsREApNQYRX2VI6cFslrClJpwREQow4WCGs8dMwsDhWESBhKKmgLw+BQCLIDv0ClvyoW+Zi+zBJLPHeSpyZNNmzZh/vz56OzsVHT7e++9F//4j/+IV199FQsWLMh6e7/fj71796KlpSXtbZxOJ2pqauK+ChG3M95X4w+FeeGhR6JwOg+A/OeKlBq+qTu+/VTqk0+MSocN57ZFTYKvfXwSABkpywmnLPYgnVozIQthU6Jaxik1BTDODcSPdJNSE2VaQxWsFgHeQJhPF8lhI91mGoXtVktciCopNWkYGxtDV1cXurq6AACHDh1CV1cXuru7+W08Hg9+97vfpVVpbrjhBmzYsIF/f8899+AHP/gBnnjiCZx22mno7e1Fb28vxsYkae873/kOtm3bhkOHDuG9997D1VdfDY/Hg7Vr16r9EwqOxLFur19qQxm50FLuDXApmOCpSTPSzYP3StQkLGdRLK+Gyc2k1JQPTtlnxJ/GV8NUGptFUPRZ7phUyQvjQilqaivs+NsvTMd1i6aZepIuJBw2+WLL5BZUfwEoNUC8WZiUmjTs3LkT8+bNw7x58wAA69evx7x58/CjH/2I32bz5s0QRRFr1qxJ+Rjd3d3o6enh3z/88MMIBAK4+uqr0dLSwr/uu+8+fptjx45hzZo1mDVrFlavXg2Hw4F3330XHR0dav+EgiNxrJspNvJN2FqQzVPDJp9sFoEbljPBi5qJRKWmdNOEE2EhfAxakVA+WCwC/0ylU2rkGTVKWrGCIOB/f/ksXD63BUtmpB6AMIMfrZqNf/raXLOfRkExozG1ryYUjvB/d7PbdawFVeWwlty6mnSolgGWLVuWsocoZ926dVi3bl3a32/dujXu+8OHD2f9727evFnJ0ytKElcljLIVCRqqNIBypUZJ6wmQ2k8TwTCC4Qg3bco9NaXO/I56WC2CFLxHSk1Z4bRZEAhF0io1wzxlWvkJ5esL2/H1hYU31EDEM2NyFf74KfB5wlj30HgQoggIQm5LjrWEFTLlotIAtPupIGDFizdBqdHSJAwAziwj3WrGuYH4omtU5gdiEe/loNRUO22YM1UK36KR1/Ii2/4npWnCRPHBs2r644sa5qepr3QoUrz1hE2olsMiSwYVNQUAKw7YxBNrQ2m59wnQXqmxWS2oiu0SYRNQx4YmEBGjrbPJZdJ/XzxDComkFQnlBU8VTrOpe0jFODdRXPCsmoT2E598KoALHOapIaWGMJTE9pMeacKAck+N0qIGkAL4mFLTzf00pT3OLWfxdMn7UAgHMsI4eKpwGqVm2Jv7ChWisGFZNceHJ+KGLPrHzJ98YtRWxEznZVTUmLMTnYhDMgpHr+r02PsEZE8UZlebSttPQPRKoGdEmoBifppymHxiLDitHjUuGxw2Ky/yiPKApwpnUWqo/VR6TKpyoMZlg8cXwqF+L85uiUaGFEJGDeP6xR3wB8P4ywXl49GioqYAkIqacOx/tU8TBgCHLfOuGr6h26ZCqUkI4OOTTyW6yDIVbpcdf/j2RbBaBE2n1YjCh2XVpFVqePAeFbulhiAIOH1KNXbHFlvyoqYAMmoYs1trcP8155n9NAyF2k8FQLqR7sSFZPliRPuJTz6VePBeIm31lWVlxiOiMKXGn1apofZTKTOjMdlXU0iemnKEipoCQPLURNUOSanRyyic+gDsUzn9BMg2dceee3cZZdQQBN//lDZ8j7WfSKkpRVLtgJKC98xXasoRKmoKAGmkO3pgHNVrpDvL9BMb6XaqUWpc0qbuUDiCo0PRoqbclBqiPJGUmiztJ7pqL0nYDij5WDdfZlkAnppyhIqaAiB5pFvn8L1s7Sc1nppYAJ9nIoieER+CYREOmwXNNeXjtifKF1cWpWbQS56aUkYa65YWW0qeGipqzICKmgKAt5/88e0nrT012cL32IG5wqGm/STtf2J+mmkNlbCQYZYoA5xMqUlhFA6FI/DEVFeafipNpk2qhEWIHrP7RqPFjOSpofaTGVBRUwAktp/G9Brpzha+F8p9+mnUF8LhAdZ6Ij8NUR5wT00Kn9rIhLTotY5G/UsSp82K9lh8xeenxjAeCGE8EH0vUPvJHKioKQD49BPf/WROUePPafpJaj91s4wa8tMQZQJTalKtSWAmYbfLZnpcPqEfbLHlwVNertI4bBbNj9+EMuiTVgCw9lMgHIE/FNZt91N2T00u00+SUZiUGqLccPHsp2SlZpjGucsCua9mIOahmlztLJtE9UKDSskCoMoh/TN4/WHZ7ieNw/esmSc11O5+AqSFaaO+II4MRB93Gik1RJmQaaEl7X0qD9hiy89PjWGAJp9Mh5SaAsBqEVAZWww5MhHkPVndlBoNR7qZUjMyHuRpwqTUEOUCi0lIdaFAG7rLgxl8rHuMgvcKACpqCgTWf+0d8fGfVTmVFxdKkLef2PihHGmkW/nbgnlqRv0h+EMR2CwCptZRsi5RHkhKTfr2UwOd4EoaVtQcG5rA8eEJABS8ZyZU1BQITJXp9UQ/FA6bhU9WaIXTGn08UQRCkVRFDRvpVj/9xGirryBTJFE2MKUmVVFDacLlweRqJ9wuG0QR2HVkCAC1n8yEzj4FgqTURHuybh2c8w6ZApOqBeULqQ/fc9mt3KsD0OQTUV4wpSZV+4mMwuWBIAjcV/NBd7SoaaSMGtOgoqZAkIqaqFKjtZ8GyF7U+HMwCgNSCwqgnU9EecHXJKRSarxkFC4XTo+NdVNGjflQUVMgsKKmJ+ap0SPjwGoRYI0l/aYa685lpBuIb0GRUkOUE05beqWGjMLlA/PVMMhTYx5U1BQIXKnx6FfUANJYd8r2Uw7he0D8OgeafCLKCZc9vadmmI90U1FT6rCsGgZNP5kHFTUFAms3MaVG671PDEeGEdSJXJWaClJqiPKEr0lImVPDlBpqP5U6MxKKmkZSakyDipoCgSkzbG29bkpNhqwadrWpduqKtZ8EAWhvoHFuonzgnpqERGFRFCWlhq7aS56OSZWQBwjTGL95UFFTIFTFihgWH6OHURiQtZ8SPDWiKHL1Rs1INyCpSq21FZqPoRNEIZMuUdgbCPPPGBmFSx+X3Yr2+mjrvbbCHjeUQRgLvfIFQmK7ye3S50DoTKPUyNtR6qefos+VJp+IckNKFA7HBVoOeaXFhhUqP09EccLMwjT5ZC5U1BQIie0mo9tPcqOjmkRhAGipdQEAZjW783x2BFFcsJUiEREIhqWiZli294kWG5YHMxqjvhrKqDEXWmhZICQWMXobhQPheA8Ak89tFkF1IvA1C9tR47LjL86aos2TJIgiwSm7APCFwvzzNUTBe2XHnKk1AIBppFibChU1BYJhSk2ake5cNnQzKh02XDW/Lf8nRxBFhtNmgSBEvXD+YASIipY0+VSGrOpshdNmxeIZDWY/lbKGipoCIdEYrHf7KXGk2xfKbZybIMoZQRDgtFngC0biWriUUVN+2K0WXH5ui9lPo+yhM1iBkKTU6N1+SihqJgK5jXMTRLmTKlWY0oQJwhyoqCkQkjw1Tn1k63Qj3cxTo3acmyDKnVSpwkypaaii9hNBGAkVNQVCUvvJYKWG2k8EkRuSUiMVNWQUJghzoDNYgVBht8Iim/w02lPDN3RT+4kgVCFt6pa3n6JKDbWfCMJYqKgpEARB4KnCgH4j3enC93JdZkkQ5Q5PFQ7J209MqaH2E0EYCRU1BYQ7VtTYLEJc/oWWZB/pprcEQaiBpwoHyShMEGZDZ7ACgvloql023VJIpfC91EWNk5QaglBFSqXGKyUKEwRhHFTUFBDMR6OXnwbIMNLN2k/kqSEIVTClhrVwg+EIRv0hAGQUJgijoaKmgKgyoqixJmdqAJJSU+GgtwRBqIGpm8xsz1pPgiAteyUIwhhUn8G2b9+OVatWobW1FYIg4MUXX4z7vSAIKb/uvffejI/73HPPYfbs2XA6nZg9ezZeeOGFpNs8/PDDmD59OlwuF+bPn48dO3aoffoFDTMH62USBhSMdJNSQxCqYJ8ZX+wzxTJqaivssFpomSVBGInqosbr9aKzsxMPPfRQyt/39PTEfT3xxBMQBAFXXXVV2sd85513cM011+D666/Hhx9+iOuvvx5f//rX8d577/HbPPvss7jttttwxx13YPfu3bjooouwcuVKdHd3q/0TChZD20/hxJFumn4iiFxwJox0D3kpo4YgzEL12XPlypVYuXJl2t83NzfHff/SSy9h+fLlmDFjRtr7PPDAA/jSl76EDRs2AAA2bNiAbdu24YEHHsAzzzwDALj//vtx44034qabbuL3ee211/DII49g48aNav+MgoS3n1z6SdaSUpO4pZumnwgiFySlhrWfWEYNtZ4Iwmh0PYOdPHkSr7zyCm688caMt3vnnXewYsWKuJ9ddtllePvttwEAgUAAu3btSrrNihUr+G1S4ff74fF44r4KmdpY/722Qj+lxqnDlm6CKGecCWsShilNmCBMQ9ei5qmnnoLb7cbq1asz3q63txdNTU1xP2tqakJvby8AoL+/H+FwOONtUrFx40bU1tbyr/b29hz/EmO46vw2XHV+G76xuEO3/0b6ke7o9zTSTRDqcCUstCSlhiDMQ9ei5oknnsB1110Hl8uV9baJuSyiKCb9TMlt5GzYsAEjIyP86+jRoyqevfG0N1TiZ1/vxFnNNbr9N9KPdDOjMLWfCEINiQstSakhCPPQrc+xY8cO7Nu3D88++2zW2zY3NycpLn19fVyZaWxshNVqzXibVDidTjidzhyefemSLVGYtnQThDqcCfvUhmhFAkGYhm6X5Zs2bcL8+fPR2dmZ9bZLlizBli1b4n72+uuvY+nSpQAAh8OB+fPnJ91my5Yt/DaEMtIttGTjqDTSTRDqcCXl1NAyS4IwC9VKzdjYGD777DP+/aFDh9DV1YWGhgZMmzYNAODxePC73/0OP/vZz1I+xg033ICpU6fyqaVvf/vbuPjii/Ev//IvuOKKK/DSSy/hjTfewFtvvcXvs379elx//fVYsGABlixZgsceewzd3d24+eab1f4JZU36kW4yChNELvCRbp5TE1VqGqqoqCEIo1Fd1OzcuRPLly/n369fvx4AsHbtWjz55JMAgM2bN0MURaxZsyblY3R3d8NikUSipUuXYvPmzfjBD36AH/7whzj99NPx7LPPYtGiRfw211xzDQYGBvDTn/4UPT09mDNnDv7whz+go0M/U20pkjZ8j0a6CSIn+Eh3klJD7SeCMBrVRc2yZcsgimLG26xbtw7r1q1L+/utW7cm/ezqq6/G1VdfnfFxb7nlFtxyyy2KnieRmvSeGgrfI4hc4Astg/FKDRmFCcJ46LK8zHCmG+kOkVJDELkgGYXDEEWRr0mgooYgjIfOYGVG2pHuQLSocZJRmCBU4ZQpNaP+EEKRqJJN7SeCMB4qasqMVEWNKIrc5Egj3QShDrlSM+yNqjQVdiu1cgnCBKioKTOYpyYUERGJXVHKx7vpQEwQ6pB7agYpo4YgTIWKmjLDIUsMZr4aNrUBUKIwQahFnijMgvcoo4YgzIHOYGWGvKhhCg2b2rBZBNis9JYgCDU4ZbufhrwxpaaKlBqCMAM6g5UZDlnREgjFKzXUeiII9cgnBvtG/QBIqSEIs6CipswQBEHKqmHtJxrnJoickU8M9o74AJCnhiDMgs5iZUjiBBSNcxNE7titAixC9P9LRQ0pNQRhBlTUlCGJRQ3z1NA4N0GoRxAE3rrt8USLGmo/EYQ5UFFThiSuSqD2E0HkB8uq6R2ZAEDtJ4IwCzqLlSHSpu5oMcM3dFP7iSBygik1p2JGYWo/EYQ5UFFThjh4Amp8+4mmnwgiN5hSE8uzRH0VFTUEYQZU1JQhSe2nILWfCCIfEi8IqP1EEOZAZ7EyJNkoHJt+IqWGIHIi8bNDRmGCMAcqasoQyVMTG+lm7Sfy1BBETjhlSd1Wi4Aal83EZ0MQ5QsVNWWIM41SU+GgtwNB5IK8/VRXYYcgCCY+G4IoX+gsVoakHekmpYYgckKu1NSRn4YgTIOKmjIksf3kp+kngsgL+WeHxrkJwjyoqClD0hmFafqJIHLDFafUUFFDEGZBZ7EyhLWf/LSlmyA0wSm7IKBxboIwDypqypB0u59opJsgckPuR6PgPYIwDypqypDkkW5mFKa3A0HkglypIaMwQZgHncXKkPSeGlJqCCIX4pQa8tQQhGlQUVOGOJNGuqP/W0FFDUHkRPz0Eyk1BGEWVNSUIYlKjZ+UGoLIi/j2Eyk1BGEWVNSUIYmeGhrpJoj8oPYTQRQGdBYrQ5K3dFP4HkHkA410E0RhQEVNGeKIXVX6E9ckkFJDEDnhlCk11H4iCPOgs1gZkjTSHYgWNU7a/UQQOcEuCKqdNv75IgjCeOjTV4ZIRuEwRFHkig21nwgiN9hnhzJqCMJcbGY/AcJ45J4aVtAAQIWDihqCyIXz2uuwbNZkLJs52eynQhBlDRU1ZYhT1n5ik08AJQoTRK647FY8+TcXmP00CKLsobNYGSLPqWGTTzaLAJuV3g4EQRBE8UJnsTIkvqih4D2CIAiiNKCipgyRe2ponJsgCIIoFehMVoY44jw10fYTjXMTBEEQxY7qomb79u1YtWoVWltbIQgCXnzxxaTb7N27F1/96ldRW1sLt9uNxYsXo7u7O+1jLlu2DIIgJH1dfvnl/DZ33nln0u+bm5vVPn0CUlHjD0V4Rg0pNQRBEESxo3r6yev1orOzE3/zN3+Dq666Kun3n3/+OS688ELceOON+MlPfoLa2lrs3bsXLpcr7WM+//zzCAQC/PuBgQF0dnbiL//yL+Nud8455+CNN97g31utpC7kQqr2E41zEwRBEMWO6qJm5cqVWLlyZdrf33HHHfgf/+N/4J577uE/mzFjRsbHbGhoiPt+8+bNqKysTCpqbDYbqTMaIB/p5hu6qf1EEARBFDma9hwikQheeeUVzJw5E5dddhmmTJmCRYsWpWxRZWLTpk249tprUVVVFffzAwcOoLW1FdOnT8e1116LgwcPZnwcv98Pj8cT90VI7SdRBMb8NP1EEARBlAaaFjV9fX0YGxvD3XffjS9/+ct4/fXX8bWvfQ2rV6/Gtm3bFD3G+++/j48++gg33XRT3M8XLVqEp59+Gq+99hoef/xx9Pb2YunSpRgYGEj7WBs3bkRtbS3/am9vz+vvKxXku2k8E0EA5KkhCIIgih9NE4UjkegkzRVXXIHbb78dAHDeeefh7bffxqOPPopLLrkk62Ns2rQJc+bMwQUXxKdzyltec+fOxZIlS3D66afjqaeewvr161M+1oYNG+J+5/F4qLCB5KkBAI8vWtQ4SakhCIIgihxNL88bGxths9kwe/bsuJ+fffbZGaefGOPj49i8eXOSSpOKqqoqzJ07FwcOHEh7G6fTiZqamrgvArBZLbAI0f8/wpQa8tQQBEEQRY6mRY3D4cDChQuxb9++uJ/v378fHR0dWe//29/+Fn6/H9/4xjey3tbv92Pv3r1oaWnJ+fmWM6wF5ZkIAaD2E0EQBFH8qG4/jY2N4bPPPuPfHzp0CF1dXWhoaMC0adPw3e9+F9dccw0uvvhiLF++HK+++ip+//vfY+vWrfw+N9xwA6ZOnYqNGzfGPfamTZtw5ZVXYtKkSUn/3e985ztYtWoVpk2bhr6+Ptx1113weDxYu3at2j+BQDRszxeM8PZTBbWfCIIgiCJHdVGzc+dOLF++nH/PPCtr167Fk08+ia997Wt49NFHsXHjRnzrW9/CrFmz8Nxzz+HCCy/k9+nu7obFEq8M7N+/H2+99RZef/31lP/dY8eOYc2aNejv78fkyZOxePFivPvuu4oUICIZSalhRmEqagiCIIjiRhBFUTT7SRiFx+NBbW0tRkZGyt5f84W7/x+OD0/g7JYa7O3x4DsrZuLWvzjT7KdFEARBEEkoPX+TkaJMcZJSQxAEQZQYVNSUKbz9RCPdBEEQRIlARU2ZwoqaUV9s+slGbwWCIAiiuKEzWZkiD+ADqP1EEARBFD9U1JQpjgRlhka6CYIgiGKHipoyJbGoIaWGIAiCKHaoqClTkttP9FYgCIIgihs6k5UppNQQBEEQpQYVNWVKclFDbwWCIAiiuKEzWZniTChqnLSlmyAIgihyqKgpU2ikmyAIgig1qKgpU5JGuh1U1BAEQRDFDRU1ZUqSp4YShQmCIIgih85kZYrDKikzNosAm5XeCgRBEERxQ2eyMkWu1JCfhiAIgigFqKgpU+KLGnobEARBEMUPnc3KFHlRQ+PcBEEQRClARU2Z4rSSUkMQBEGUFnQ2K1PkSg2NcxMEQRClABU1ZUqcp4baTwRBEEQJQEVNmeKw0vQTQRAEUVpQUVOm0PQTQRAEUWrQ2axMiZt+IqWGIAiCKAGoqClTyFNDEARBlBpU1JQpDhrpJgiCIEoMOpuVKU75SDe1nwiCIIgSgIqaMoV2PxEEQRClBhU1ZQpNPxEEQRClBp3NyhTKqSEIgiBKDSpqyhQa6SYIgiBKDSpqypT4kW56GxAEQRDFD53NyhRqPxEEQRClBhU1ZYogCLywoZFugiAIohSgoqaMYS0oUmoIgiCIUoCKmjJGKmrobUAQBEEUP3Q2K2PqK+0AgIYqh8nPhCAIgiDyx2b2EyDM4/6vn4eD/WOYMbna7KdCEARBEHlDRU0Z09leh872OrOfBkEQBEFogur20/bt27Fq1Sq0trZCEAS8+OKLSbfZu3cvvvrVr6K2thZutxuLFy9Gd3d32sd88sknIQhC0pfP54u73cMPP4zp06fD5XJh/vz52LFjh9qnTxAEQRBEiaK6qPF6vejs7MRDDz2U8veff/45LrzwQpx11lnYunUrPvzwQ/zwhz+Ey+XK+Lg1NTXo6emJ+5Lf59lnn8Vtt92GO+64A7t378ZFF12ElStXZiyWCIIgCIIoHwRRFMWc7ywIeOGFF3DllVfyn1177bWw2+34P//n/yh+nCeffBK33XYbhoeH095m0aJFOP/88/HII4/wn5199tm48sorsXHjRkX/HY/Hg9raWoyMjKCmpkbx8yMIgiAIwjyUnr81nX6KRCJ45ZVXMHPmTFx22WWYMmUKFi1alLJFlcjY2Bg6OjrQ1taGr3zlK9i9ezf/XSAQwK5du7BixYq4+6xYsQJvv/122sf0+/3weDxxXwRBEARBlCaaFjV9fX0YGxvD3XffjS9/+ct4/fXX8bWvfQ2rV6/Gtm3b0t7vrLPOwpNPPomXX34ZzzzzDFwuF77whS/gwIEDAID+/n6Ew2E0NTXF3a+pqQm9vb1pH3fjxo2ora3lX+3t7dr8oQRBEARBFByaTj9FIhEAwBVXXIHbb78dAHDeeefh7bffxqOPPopLLrkk5f0WL16MxYsX8++/8IUv4Pzzz8cvfvELPPjgg/zngiDE3U8UxaSfydmwYQPWr1/Pv/d4PFTYEARBEESJomlR09jYCJvNhtmzZ8f9/Oyzz8Zbb72l+HEsFgsWLlzIlZrGxkZYrdYkVaavry9JvZHjdDrhdDpV/AUEQRAEQRQrmrafHA4HFi5ciH379sX9fP/+/ejo6FD8OKIooqurCy0tLfxx58+fjy1btsTdbsuWLVi6dGn+T5wgCIIgiKJHtVIzNjaGzz77jH9/6NAhdHV1oaGhAdOmTcN3v/tdXHPNNbj44ouxfPlyvPrqq/j973+PrVu38vvccMMNmDp1Kp9a+slPfoLFixfjzDPPhMfjwYMPPoiuri788pe/5PdZv349rr/+eixYsABLlizBY489hu7ubtx88815/PkEQRAEQZQKqouanTt3Yvny5fx75llZu3YtnnzySXzta1/Do48+io0bN+Jb3/oWZs2aheeeew4XXnghv093dzcsFkkkGh4exrp169Db24va2lrMmzcP27dvxwUXXMBvc80112BgYAA//elP0dPTgzlz5uAPf/iDKgWIIAiCIIjSJa+cmmKDcmoIgiAIovgwJaeGIAiCIAjCLKioIQiCIAiiJCirLd2s00bJwgRBEARRPLDzdjbHTFkVNaOjowBAAXwEQRAEUYSMjo6itrY27e/LyigciURw4sQJuN3ujEnEamFJxUePHiUDsgHQ620s9HobC73exkKvt7Hk+nqLoojR0VG0trbGTU8nUlZKjcViQVtbm26PX1NTQx8KA6HX21jo9TYWer2NhV5vY8nl9c6k0DDIKEwQBEEQRElARQ1BEARBECUBFTUa4HQ68eMf/5iWZxoEvd7GQq+3sdDrbSz0ehuL3q93WRmFCYIgCIIoXUipIQiCIAiiJKCihiAIgiCIkoCKGoIgCIIgSgIqagiCIAiCKAmoqNGAhx9+GNOnT4fL5cL8+fOxY8cOs59SSbB9+3asWrUKra2tEAQBL774YtzvRVHEnXfeidbWVlRUVGDZsmX4+OOPzXmyRc7GjRuxcOFCuN1uTJkyBVdeeSX27dsXdxt6vbXjkUcewbnnnssDyJYsWYL/+q//4r+n11pfNm7cCEEQcNttt/Gf0WuuHXfeeScEQYj7am5u5r/X87WmoiZPnn32Wdx222244447sHv3blx00UVYuXIluru7zX5qRY/X60VnZyceeuihlL+/5557cP/99+Ohhx7Cn/70JzQ3N+NLX/oS3/FFKGfbtm34+7//e7z77rvYsmULQqEQVqxYAa/Xy29Dr7d2tLW14e6778bOnTuxc+dO/MVf/AWuuOIKfmCn11o//vSnP+Gxxx7DueeeG/dzes215ZxzzkFPTw//2rNnD/+drq+1SOTFBRdcIN58881xPzvrrLPE733veyY9o9IEgPjCCy/w7yORiNjc3Czefffd/Gc+n0+sra0VH330UROeYWnR19cnAhC3bdsmiiK93kZQX18v/upXv6LXWkdGR0fFM888U9yyZYt4ySWXiN/+9rdFUaT3t9b8+Mc/Fjs7O1P+Tu/XmpSaPAgEAti1axdWrFgR9/MVK1bg7bffNulZlQeHDh1Cb29v3GvvdDpxySWX0GuvASMjIwCAhoYGAPR660k4HMbmzZvh9XqxZMkSeq115O///u9x+eWX49JLL437Ob3m2nPgwAG0trZi+vTpuPbaa3Hw4EEA+r/WZbXQUmv6+/sRDofR1NQU9/Ompib09vaa9KzKA/b6pnrtjxw5YsZTKhlEUcT69etx4YUXYs6cOQDo9daDPXv2YMmSJfD5fKiursYLL7yA2bNn8wM7vdbasnnzZuzatQs7d+5M+h29v7Vl0aJFePrppzFz5kycPHkSd911F5YuXYqPP/5Y99eaihoNEAQh7ntRFJN+RugDvfbac+utt+LPf/4z3nrrraTf0eutHbNmzUJXVxeGh4fx3HPPYe3atdi2bRv/Pb3W2nH06FF8+9vfxuuvvw6Xy5X2dvSaa8PKlSv5/587dy6WLFmC008/HU899RQWL14MQL/XmtpPedDY2Air1ZqkyvT19SVVoYS2MCc9vfba8s1vfhMvv/wy3nzzTbS1tfGf0+utPQ6HA2eccQYWLFiAjRs3orOzE//6r/9Kr7UO7Nq1C319fZg/fz5sNhtsNhu2bduGBx98EDabjb+u9JrrQ1VVFebOnYsDBw7o/v6moiYPHA4H5s+fjy1btsT9fMuWLVi6dKlJz6o8mD59Opqbm+Ne+0AggG3bttFrnwOiKOLWW2/F888/j//3//4fpk+fHvd7er31RxRF+P1+eq114Itf/CL27NmDrq4u/rVgwQJcd9116OrqwowZM+g11xG/34+9e/eipaVF//d33lbjMmfz5s2i3W4XN23aJH7yySfibbfdJlZVVYmHDx82+6kVPaOjo+Lu3bvF3bt3iwDE+++/X9y9e7d45MgRURRF8e677xZra2vF559/XtyzZ4+4Zs0asaWlRfR4PCY/8+Lj7/7u78Ta2lpx69atYk9PD/8aHx/nt6HXWzs2bNggbt++XTx06JD45z//Wfz+978vWiwW8fXXXxdFkV5rI5BPP4kiveZa8g//8A/i1q1bxYMHD4rvvvuu+JWvfEV0u938vKjna01FjQb88pe/FDs6OkSHwyGef/75fAyWyI8333xTBJD0tXbtWlEUo6OBP/7xj8Xm5mbR6XSKF198sbhnzx5zn3SRkup1BiD++te/5reh11s7/vZv/5YfMyZPnix+8Ytf5AWNKNJrbQSJRQ295tpxzTXXiC0tLaLdbhdbW1vF1atXix9//DH/vZ6vtSCKopi/3kMQBEEQBGEu5KkhCIIgCKIkoKKGIAiCIIiSgIoagiAIgiBKAipqCIIgCIIoCaioIQiCIAiiJKCihiAIgiCIkoCKGoIgCIIgSgIqagiCIAiCKAmoqCEIgiAIoiSgooYgCIIgiJKAihqCIAiCIEoCKmoIgiAIgigJ/n/ipGRlZxJhlAAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {}
    }
   ],
   "metadata": {}
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "source": [
    "(sum(theta[0,:]))/ti.size"
   ],
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "17.603599858391277"
      ]
     },
     "metadata": {},
     "execution_count": 59
    }
   ],
   "metadata": {}
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "source": [
    "#结果图\r\n",
    "Y_history = pd.DataFrame(ga.all_history_Y)\r\n",
    "fig, ax = plt.subplots(2, 1)\r\n",
    "ax[0].plot(Y_history.index, Y_history.values, '.', color='red')\r\n",
    "Y_history.min(axis=1).cummin().plot(kind='line')\r\n",
    "plt.show()"
   ],
   "outputs": [
    {
     "output_type": "display_data",
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 2 Axes>"
      ]
     },
     "metadata": {}
    }
   ],
   "metadata": {}
  },
  {
   "cell_type": "code",
   "execution_count": 61,
   "source": [
    "sonar.sointen_f(X,fs)*180/np.pi"
   ],
   "outputs": [
    {
     "output_type": "stream",
     "name": "stderr",
     "text": [
      "C:\\Users\\bjlaz\\anaconda3\\lib\\site-packages\\scipy\\signal\\spectral.py:1812: UserWarning: Input data is complex, switching to return_onesided=False\n",
      "  \n"
     ]
    },
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": [
       "17.746770784939255"
      ]
     },
     "metadata": {},
     "execution_count": 61
    }
   ],
   "metadata": {}
  }
 ],
 "metadata": {
  "orig_nbformat": 4,
  "language_info": {
   "name": "python",
   "version": "3.8.11",
   "mimetype": "text/x-python",
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "pygments_lexer": "ipython3",
   "nbconvert_exporter": "python",
   "file_extension": ".py"
  },
  "kernelspec": {
   "name": "python3",
   "display_name": "Python 3.8.11 64-bit ('bjlaz': virtualenv)"
  },
  "interpreter": {
   "hash": "03830d45d556e4afb0878b18115b4ce1bfdb80e7247e5ce1ac2fef1e195100f1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}